Подтвердить что ты не робот

Что мешает широко использовать XSLT для веб-страниц?

Почему веб-страницы, написанные с использованием XML с таблицей стилей XSLT, не больше? Для разделения контента из презентации это в сочетании с CSS будет еще более мощным. Прямо сейчас, для таких вещей, как вывод меню навигации, люди часто копируют код navmenu со страницы на страницу или делают что-то вроде

<?php include_once('myheader.inc'); ?>

на каждой странице, что не только повышает спрос на сервере, но и приводит к дублированию передаваемых данных.

Когда мне представили, мне сказали, что все основные браузеры возвращаются к IE6, поддерживая XSLT 1.0... есть ли неразрешимые ошибки между реализациями? Существуют ли другие демонстрации или сильно отсутствуют функции, которые препятствуют распространению XML + XSLT? Единственным веб-сайтом, который я видел в последнее время, является XML + XSLT, является starcraft2.com.

4b9b3361

Ответ 1

  • Это очень многословный
  • Трудно отследить (в сложной системе), как/where/why/при вызове шаблона
  • Поскольку вывод должен быть хорошо сформированным, у вас не может быть шаблона, который "открывает" тег HEAD или BODY, которые вы затем будете беспокоиться о закрытии в другом месте позже. Это отстойно, если вы хотите, чтобы в очередь стояли в очереди на бит кода, чтобы войти в HEAD, когда вы обрабатываете то, что будет в BODY.
  • Не так легко перемещаться по коду, поскольку следующие вызовы методов:
  • Вывод чего-то вроде условного комментария IE очень сбивает с пути все необходимые экраны
  • Построение строки HTML путем добавления битов просто не работает. Это можно преодолеть, построив строку HTML по биту в XSL-коде, но она становится довольно сложной.

Однако больше всего (IMHO) добавляет дополнительный слой к процессу, который не "покупает" вас много.

например. обычно у вас есть:

DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > HTML

но если вы запустите XML и XSL, вы добавили шаги, которые (могут быть) трудно оправдать

DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > XML > XSL > HTML

имеющий данные в удобном универсальном сменном формате XML, отлично подходит для всех, но если вы не нуждаетесь, все, что вы сделали, это добавить шаги.

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

Ответ 2

Blizzard Entertainment, похоже, нравится XSLT. Их сайт World of Warcraft Armory полностью реализуется с его помощью. Просмотрите сайт, используя источник просмотра.

Ответ 3

Я думаю, что часть проблемы заключается в том, что программирование в XSLT имеет некоторые атрибуты функционального языка (см. этот ответ, почему он не полностью функционирует).

Как таковой он требует другого подхода от "обычного" императивного мышления, и это будет мешать некоторым людям полностью исследовать его (я не увольняю функциональное программирование, кстати, но в мире веб-клиента/сервера это не наиболее распространенная парадигма).

В мире Java это воспринималось как медленное и голодное. Я уверен, что некоторые из них были анекдотическими и, возможно, частично результатом ранних ВМ. Однако я отмечаю, что аппаратные ускорители XML доступны и сидят за интерфейсом JAXP, поэтому, возможно, есть еще проблема с скоростью?

Ответ 4

Существует несколько вопросов, касающихся принятия XSLT, проблем с браузером. Например, плагин Firefox NoScript, предназначенный для блокировки вредоносного JavaScript, также блокирует XSLT на неизвестных страницах. Не забывайте, что переход на субдомен или другой протокол заставит IE реагировать на него как нарушение одной и той же политики происхождения. Тем не менее XML + XSLT, даже если он только для ограниченного числа случаев, весьма полезен. См. WoW в качестве примера хорошо реализованного XML + XSLT.

Ответ 5

XSLT непросто.

Ответ 6

XSL в браузере также является проблемой из-за поисковых систем. В настоящее время они смотрят только на базовый XML и игнорируют таблицу стилей XSL. Это серьезно повредит вашему ранжированию, я полагаю, поскольку они не могут понять смысл вашего контента таким образом. Например, они даже не знают, где, например, заголовки или ссылки.

Ответ 7

Простой, XSLT слишком сложный.

Ответ 8

XSLT в браузере сразу, потому что наименьшая ошибка при генерации действительного ввода XML может привести к тому, что ваша страница будет отображаться пустым, но есть продукт под названием deliverance, который работает на сервере, чтобы разные веб-приложения на сайте имели одну и ту же тему.

XSLT на удивление быстро. Это будет намного быстрее, чем типичный интерпретируемый язык шаблонов на бэкэнд.

Ответ 9

XSLT - уродливый, уродливый язык шаблонов. Он имеет некоторые преимущества, но также не хватает некоторых важных функций. Django содержит язык шаблонов для дизайнеров, чтобы предоставить им простой доступ к элементам данных. Они рассмотрели XLST до, но считают, что это просто изменить. Пользователи PHP могут предпочесть что-то вроде Smarty.

Очевидно, ваш вопрос фокусируется на переносе этого в браузер, где выбор в основном - XSLT, CSS или Javascript. Я предполагаю, что люди, которые отвечают за CSS, не те, что отвечают за Javascripting.

Ответ 10

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

Это означает, что вы делаете два преобразования на стороне сервера вместо одного: data → XML → HTML вместо данных → HTML.

Ответ 11

XSLT была одной из немногих технологий XMLish, которые мне нравились. Специально для генерации отчетов концепция XSLT с чувством набора и возможностью нацеливаться на все виды выходных форматов (а не только на html) заслуживает того, чтобы его использовали больше, чем сегодня.

Причина, по которой я лично никогда не пользовался, заключалась в том, что в то время один из браузеров (я считаю, IE7) не поддерживал рендеринг XSLT в браузере, и у нас не было возможности обработки XSLT на стороне сервера.

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

Ответ 12

Люди, которые не жили под скалой в течение последних десяти лет, не копируют и не вставляют код заголовка или больше не используют PHP для компоновки. Они отделяют представление от фактического кода и используют системы шаблонов (например, Smarty, популярный для PHP), которые имеют синтаксис, который легче понять и обосновать, чем XSLT.