Преимущества / недостатки использования XSL для рендеринга целых веб-страниц - PullRequest
12 голосов
/ 07 января 2009

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

Помогите мне стать менее невежественным, что может быть причиной этого? Какие преимущества или недостатки это приносит на стол?

Ответы [ 7 ]

8 голосов
/ 07 января 2009

Серверные:

Преимущества:
  • Чистые, лаконичные шаблоны
  • Простой способ обработки данных XML в HTML
  • достаточно быстро
Недостатки:
  • Модель программирования, незнакомая и неудобная для многих программистов на процедурном языке
  • Неудобно, если некоторые или все исходные данные не в XML
  • Может быть очень медленным, когда не используется осторожно (небольшие изменения могут иметь большие последствия)

на стороне клиента:

Преимущества:
  • Удобный способ перегрузить обработку на клиентский код, где сценарии потенциально могут лучше понять, как лучше отформатировать полученный HTML.
Недостатки:
  • Поддержка браузеров по всей карте.
  • Google не поблагодарит вас.
4 голосов
/ 07 января 2009

Звучит так, будто они это сделали, потому что они очень хорошо знали XSL-T и уже имели под рукой данные XML.

Мне бы не понравилось это решение. XSL-T не самая простая вещь для чтения или записи. Это не подходит для визуализации того, как будет выглядеть страница. Это исключает дизайнеров и веб-разработчиков из процесса. И это не интернационализирует хорошо. Нет ничего эквивалентного комплектам ресурсов Java, которые могут извлекать информацию, специфичную для локали. Я не считаю, что вырезать и вставить хорошее решение.

2 голосов
/ 14 января 2009

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

2 голосов
/ 07 января 2009

XSLT на стороне клиента

  • Отключает прогрессивный рендеринг. Пользователь ничего не увидит, пока вся таблица стилей и данные не будут загружены полностью.
  • Не поддерживается поисковыми системами и другими сканерами. Они увидят сырой XML.
  • Не поддерживается старыми / менее продвинутыми браузерами.

XSLT в целом

  • Если вы тщательно не создадите свои таблицы стилей, их может быстро стать трудно поддерживать:
    • с многочисленными шаблонами может быть очень трудно определить, какие шаблоны применяются.
    • детализация синтаксиса XSLT и XML затрудняет понимание чего-либо с первого взгляда.
    • Трюки с XPath заманчивы, но кошмар, чтобы изменить позже.
0 голосов
/ 15 января 2009

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

При обработке файлов XML XSLT должен загрузить весь документ в память. С Xalan это потребляет примерно в 10 раз больше размера входного файла (у saxon есть альтернативная реализация DOM, которая использует меньше памяти). Если какой-либо из ваших входных наборов данных превысит пару сотен мегабайт, ваш процессор XSLT может просто перестать работать.

0 голосов
/ 07 января 2009

Самое большое преимущество: нейтральный для платформы способ рендеринга xml

Самый большой недостаток XSL трудно поддерживать

Мне когда-то приходилось работать с xsl длиной более 4000 строк, который также включает несколько других шаблонов xsl. С этим было трудно работать!

0 голосов
/ 07 января 2009

Звучит как фетиш XML "Все поют, все танцуют".

Поскольку с XSLT вы можете делать все что угодно, вы можете делать все что угодно. Меня спрашивали, почему хранилище данных - это не просто XSLT-преобразование между вводом, витриной данных и отчетами.

Advantage. Все в XML.

Недостатки.

  • Не очень читабельно. Ваши шаблоны страниц связаны как XSLT-преобразования с запутанными функциями зацикливания и условной обработки.

  • Любое изменение в шаблонах страниц требует специалиста по XSLT, в дополнение к графическому дизайнеру, который создал (и отладил) HTML и CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...