XSLT and Web"> XSLT and Web">

Vulpo One

XSLT and Web

XSLT (Extensible Stylesheet Language Transformations) — часть спецификации XSL, задающая язык преобразований XML-документов. Спецификация XSLT является рекомендацией W3C.[1]

Обычно XSLT в вебе используется для преобразования XML-документов в XHTML на стороне сервера. В результате получается обычная HTML-ка, которая передается в браузер. Это не интересно и никак не отражает некоторых прелестей XSLT-преобразования.

Работа с XML и, в частности, XSLT-преобразование является стандартной функцией современных браузеров. Почему бы не заюзать преобразования на стороне клиента?

Выглядит, скажем, наша главная страница как

<page title="Главная">
    <hello/>
    <search/>
    <newsblock>
        <news date="2009-01-02" link="/page1.xml">Новость</news>
        <news date="2009-01-12" link="/page2.xml">Еще новость</news>
    </newsblock>
</page>

И уже в браузере формируется в приветствие, блок поиска и блок новостей и оборачивается в оформление сайта.

Такой подход используется, например на сайте starcraft2.com и сайте avalon.com.ru, над которым я время от времени и колдую.

Посмотрим на достоинства и недостатки:

Достоинтсва:

  1. Разделение данных и представления. Это типа хорошо и этого всегда добиваются
  2. Снижение нагрузки на сервер. Точнее, на вебовский фронт-энд, так как ему уже не надо по куче шаблонов формировать удобочитаемое представление
  3. Снижение трафика. Шаблоны достаточно скачать один раз и закешировать. Собственно, тот же эффект, что и от CSS

Недостатки:

  1. Требуется более высокое качество кода. Корявый HTML коряво отображается. Корявый XML не отображается вообще (на самом деле это достоинство, но моду диктуют “индусы” и другие быдлокодеры)
  2. Нагрузка на клиента. Современные браузеры на XSLT-страничках заметно подтормаживают, особенно, разумеется, Internet Explorer. Тонкий клиент как бы “толстеет”
  3. Browser Wars. Стоит просто у валидной XHTML-странички сменить тип с text/html на text/xml, сразу же всплывают какие-то странные несовместимости у браузеров. А, например, открытые реализации KHTML/WebKit (напр, Konqueror и Arora) вообще XSLT не понимают

Непонятки:

  1. Поисковики. Как поисковики относятся к XSLT? А хз. Требует дополнительного исследования

В целом, снятие нагрузки с интерпретатора на сервере и с моих мозгов перевешивает для меня минусы подхода. В скором будущем напишу подробнее о поддержке браузерами и, если что узнаю, поисковиками