Является ли использование XML и XSLT хорошим способом создания веб-страницы? - PullRequest
3 голосов
/ 12 августа 2010

Я только что узнал, как использовать файл данных XML и XSLT для создания веб-страницы (преобразования из XML в HTML или XHTML). Но я никогда не видел веб-страницу с исходным кодом XML со ссылкой на файл XSLT. Разве это не хорошее решение?

Ответы [ 8 ]

5 голосов
/ 12 августа 2010

Если у вас уже есть данные в виде XML (или их легко превратить в XML), то я бы сказал, что это хорошее решение.Возможно, вы захотите убедиться, что ваш веб-сервер настроен правильно, чтобы гарантировать, что XSLT кэшируется на стороне клиента, чтобы ему не приходилось каждый раз выполнять запрос.В XML уже есть лучшие шаблонные решения (PHP, JSP, ASP и т. д.), которые лучше подходят для любой среды, в которой вы находитесь.

2 голосов
/ 12 августа 2010

Я не думаю, что это хорошая архитектура для общедоступных веб-сайтов:

  • Хотя большинство браузеров поддерживают XSLT на стороне клиента, не все будут
  • Даже если они это сделают, могут быть отдельные проблемы совместимости браузера, как с javascript
  • Возможность «просматривать исходные тексты» является невероятно полезным инструментом для отладки.Вы не можете сделать это с XSL
  • Якобы Google будет оценивать хорошо размеченный HTML выше, чем XML-документы
  • XSL - ужасный язык
  • Вам все еще нужно рендерить в XML(если ваши данные изначально не являются XML), так почему бы не выполнить рендеринг непосредственно в (X) HTML?

Если ваши данные изначально являются XML, то, возможно, имеет смысл преобразовать их через XSL на стороне сервера.(Я написал системы, которые делают это), но это единственная ситуация и архитектура, в которой я бы использовал XSL при создании веб-сайта.

2 голосов
/ 12 августа 2010

Конечно, есть страницы, которые создаются с использованием XSL + XML, но я уверен, что большинство из них анализируются на стороне сервера, а не на стороне клиента.Затем, если вы откроете страницу aspx или php, вы не сможете определить, была ли она проанализирована в файлах XML и XSL.

Это также довольно приличный шаблонный механизм.Мы используем его для веб-страниц в нашей фирме, а также для электронной почты и некоторых других средств массовой информации.Это было бы преимуществом XML в этом отношении;он не поддерживает мультимедиа, и вы можете преобразовать исходный XML во многие форматы (большинство из которых будут основаны на XML).

1 голос
/ 12 августа 2010

Веб-сайты Blizzard world of warcraft и их оружейный веб-сайты имеют единственный веб-сайт, который я когда-либо видел, который отправляет xml и использует xslt на стороне клиента для его отображения. Кажется, это работает довольно хорошо, и это довольно большие сайты. (Имейте в виду, что он смотрит на пользовательский агент и выполняет трансформацию на стороне сервера для некоторых браузеров, я знаю, что он делает это на стороне клиента для IE)

1 голос
/ 12 августа 2010

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

0 голосов
/ 06 октября 2011

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

Некоторые браузеры не поддерживают XSLT на стороне клиента, но большинство используемых (IE, FF, Chrome) работают просто отлично. Сложность заключается в браузерах для мобильных устройств. Например. на Android XSLT пока не поддерживается. Мы справились с этим, выполнив обнаружение устройств на стороне сервера (используя WURLF - который, к сожалению, не имеет флага возможности поддержки XSL, поэтому нам пришлось выбирать в зависимости от типа устройства), и выполняем преобразование на стороне сервера только для тех устройств, которые не могу справиться с этим на стороне клиента. Таким образом, мы сохраняем как можно больше обработки на стороне клиента, что помогает нам легче масштабировать без необходимости аппаратного обновления (пока :)).

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

Безопасность: один важный аспект, который необходимо учитывать, если вы выбираете XSLT на стороне клиента, - это убедиться, что данные XML, которые вы отправляете клиенту, не являются конфиденциальными / конфиденциальными (не содержат никакой конфиденциальной информации, которая Вы можете не захотеть, чтобы некоторые пользователи видели). Например. если ваш XSLT показывает некоторые данные только для некоторых пользователей и будет мостом безопасности, если другие увидят скрытые данные, вам лучше выполнить преобразование на стороне сервера.

Надеюсь, это поможет.

Приветствия, Стеф.

0 голосов
/ 12 августа 2010

Это хорошее решение, если оно соответствует вашим потребностям.XSLT-преобразование на стороне клиента ...
... хорошо, потому что:
- вы можете использовать шаблоны в дешевом netspace без какой-либо поддержки сервера
- очень хорошо для интенсивного трафика
- сайт работает дажев автономном режиме на CD / DVD / USB-флешке
- верхний и нижний колонтитулы, навигация и т. д. находятся в сценарии XSLT и загружаются только один раз, что хорошо для скорости на многих похожих страницах.
... плохо, потому что:
- Некоторые нишевые браузеры могут не поддерживать XSLT
- вы не будете присутствовать на Google, файл XML не подходит для паука движка serch

0 голосов
/ 12 августа 2010

Существует пример PHP-приложения, использующего XML / XSLT для генерации HTML, с демонстрациями на стороне сервера и клиента на Tony Marston's Пример PHP-приложения , с множеством рассуждений, howtos и тому подобным.*

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