2010-09-12 5 views
2

У меня есть простой вопрос о том, как Rails 3 работает с доктринами XHTML. Поскольку Rails 3 использует UJS для своих аякс-вызовов (и даже обычных вызовов, таких как удаление вызовов), и делает это с использованием атрибутов данных HTML5, то, поскольку XHTML не поддерживает атрибуты данных, будет ли разметка автоматически недействительной?Rails 3 UJS и XHTML

ответ

6

Атрибуты data-* действительны в XHTML5, что является одним из кодировок HTML5. Они недействительны в XHTML 1.0, но это, вероятно, не большая проблема.

Скорее всего, если вы обслуживаете свой контент в реальных браузерах, они анализируют его как HTML, а не XHTML. Если вы обслуживаете свой контент как text/html, браузеры будут анализировать его как HTML. Если вы обслуживаете его как application/xhtml+xml, IE 6 будет отображать его как необработанный XML, а не как HTML, а в других браузерах, если вы допустили одну небольшую ошибку, они перестанут анализировать его и отобразить уродливое сообщение об ошибке, а не просто продолжать попытки для анализа остальной части содержимого. Если вы обслуживаете его как text/html, то браузеры будут анализировать его как text/html, поэтому не имеет значения, действительно ли он XHTML или нет.

Даже если он недействителен XHTML 1.0, он по-прежнему хорошо сформирован, а веб-браузеры не проверяют пользовательские агенты, поэтому, действительно ли контент действителен или нет, это не имеет большого значения. Весь смысл атрибутов data-* - предоставить личные данные скриптам на странице. Поскольку атрибуты data-* не препятствуют правильному оформлению документа, браузер все равно будет синтаксически разбирать документ, и ваши сценарии, таким образом, будут иметь доступ к данным, независимо от того, действительны ли данные XHTML.

Результат: эти атрибуты действительны в HTML5 и XHTML5. Они недействительны в XHTML 1.0, но это не имеет особого значения, поскольку эти атрибуты будут работать во всех основных браузерах, чтобы предоставлять личные данные скриптам на вашей странице.

+0

Хороший ответ. Слишком много людей в наше время слепо жестоко относятся к строгой действительности. –

Смежные вопросы