HTML - статьи


(X)HTML - часть 4


Итак, XHTML -данные правильно отдавать клиенту именно в формате «application/xhtml+xml», так как все преимущества, помимо кросс-браузерности (увеличение скорости анализа кода процессором XML , сообщение об ошибках самим браузером и пр.), могут достигаться только в случае, если пользовательский агент поддерживает XHTML и ему сообщается о том, что входящие данные — XHTML -код. Единственное, что надо помнить при отправке XHTML -кода: если браузер понимает XHTML , то только тогда информацию можно отправить как «application/xhtml+xml»; если же нет, то только как «text/htm l ». Список современных клиентов, поддерживающих XHTML : MZ , Opera , NN . IE , к сожалению, пока не понимает «application/xhtml+xml». Проверять, поддерживает ли пользовательский агент нужный MIME -тип можно по исходящему от браузера заголовку «Accept», где содержатся все MIME -типы, известные клиенту. Приведём пример, как это можно сделать с помощью Perl -скрипта:

MIME (Multipurpose Internet Mail Extension) — многоцелевые расширения электронной почты .

#!/usr/bin/perl -w # Выясняем, поддерживает ли браузер XHTML. my $html = "text/html"; my $xhtml = "application/xhtml+xml"; my $type = $ENV{HTTP_ACCEPT} =~ m/\Q$xhtml\E/ ? $xhtml : $html; # Вывод соответствующего заголовка. print "Content-Type: $type\n\n"; # Вывод (X)HTML-документа. print "...";

При отправке данных как «application/xhtml+xml», надо учитывать ещё несколько моментов, без которых возможно появление ошибок. Так как синтаксически XHTML — это XML , элементы «script» и «style» в XHTML — это #PCDATA-блоки (а не #CDATA). Содержимое таких блоков необходимо помещать в специальную секцию CDATA , иначе процессор XML преобразует специальные символы в их эквиваленты ещё до обработки браузером таблицы стилей или сценария. Следующий пример показывает, как можно это сделать:

<script type="text/javascript"><!--//--><![CDATA[//><!-- ... //--><!]]></script> ... <style type="text/css"><!--/*--><![CDATA[/*><!--*/ ... /*]]>*/--></style>

Такой синтаксис универсален. Этот код будет корректно работать и при «text/htm l » и при «application/xhtml+xml».

Хорошим и самым простым решением будет подключение внешних файлов таблиц стилей и скриптов. В XHTML это делается так же как и в HTML :

<!-- Подключение CSS -файла (не забудьте о закрывающем слеше). --> < link rel = "stylesheet" type = "text/css" href = "file.css" title = "" media = "screen" / > <!-- Подключение JS -файла. --> < script type = "text/javascript" src = "file.js" ></ script >




- Начало -  - Назад -  - Вперед -