Преимущества/Недостатки использования XSL для отображения всех веб-страниц

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

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

Ответ 1

на стороне сервера:

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

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

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

Ответ 2

Похоже, они это сделали, потому что они хорошо знали XSL-T и уже имели данные XML.

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

Ответ 3

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

Ответ 4

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

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

XSLT вообще

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

Ответ 5

Звучит как фетиш XML всех поющих танцев.

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

Преимущество. Все в XML.

Недостатки.

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

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

Ответ 6

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

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

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

Ответ 7

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

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