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

Любые большие сайты с использованием клиентской стороны XSLT?

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

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

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

Мой вопрос: есть ли какое-либо большое имя или большие сайты трафика, используя этот подход, и если да: какие ограничения/уроки вы отняли у него?

Спасибо, Интернет, Зак

4b9b3361

Ответ 1

Как и другие люди, Blizzard имеет множество сайтов, на стороне клиента xsl. Я бы рекомендовал избегать клиентской стороны xsl. Это действительно крутая идея, но есть много необычных ошибок, которые вам нужно обойти.

В Firefox любой javascript, который использует document.write, уничтожит DOM. Кроме того, плагин noscript для firefox останавливает клиентскую сторону xsl. В обоих случаях пользователь ничего не увидит. Кажется, что нет способа обнаружить такую ​​ошибку, поэтому откат не будет работать.

В IE, если у вас есть что-то, что делает 30-кратное перенаправление на что-то другого происхождения (переход от http к https или пересечение поддоменов), вы получите сообщение об ошибке для нарушения та же самая политика происхождения. Вы действительно не нарушали одну и ту же политику происхождения, но IE действует так, как вы. Например, если вы перейдете к http://foo.example.com/login и перенаправляете 302 на https://bar.example.com/login.xml, IE будет рассматривать xsl, как если бы он пришел с bar.example.com, и он будет обрабатывать xml, как если бы он пришел с foo.example.com. Поэтому вам нужно будет вернуться к чему-то вроде мета-обновления для ваших переадресаций.

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

Ответ 2

Я не мог рассказать вам подробно, как это реализовано, но World of Warcraft - довольно большой и высокий трафик, и их веб-сайт как описано ниже.

Ответ 3

Я не знаю больших публичных веб-сайтов, которые используют XSLT-преобразование на стороне клиента (ну, кроме World of Warcraft, упомянутого Джоэлом:-). Поэтому я не могу ответить на ваш вопрос напрямую.

Однако время от времени я сам обдумывал один и тот же вопрос, и у меня есть гипотеза о том, что количество таких сайтов в Интернете должно быть очень близко к нулю.: -)

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

Ответ 4

Компания, с которой я работал в 2001 году, выпустила серверный продукт, который реализовал именно архитектуру, которую вы описываете. У нас был очень хороший успех, выгружая обработку на клиентов. Кроме того, делая обнаружение клиента с помощью пользовательского агента HTTP, мы могли использовать обработку XSL на стороне сервера, чтобы обслуживать очень специфических клиентов, таких как японские сотовые телефоны. Я думаю, что сайты/сервисы/продукты, которые используют этот метод, делают это достаточно прозрачно для клиентов. Тем не менее, я думаю, что в последнее время тенденция заключается в том, чтобы обрабатывать серверную сторону, чтобы вам не приходилось полагаться и не тестировать конкретные реализации XSL для разных клиентов, и вы получаете поддержку некоторых расширений XSL, которые вы не сможете использовать для использования при поддержке подавляющего большинства браузеров.

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

Ответ 5

В настоящее время я запускаю несколько второстепенных страниц с клиентской стороной XSLT, все в шведском (lillemanfestivalen.se, resihop.nu и бета-проекты). Моя самая большая проблема заключалась в том, что Google не индексировал содержимое моих страниц, а только XML без преобразования. Однако, так как я запустил resihop.nu неделю назад, он появляется в преобразовании google с!: D

Теперь моя другая проблема - facebook и другие социальные сайты, которые не понимают, как с этим справиться. Однако я все же думаю, что боковые стороны больше, чем нижние. Сказочная скорость и разделение я получаю. И с resihop.nu, я даже не разрабатываю отдельный API, я просто указываю разработчиков на сам сайт. (Там будет больше работы, чтобы все было хорошо)

Ответ 6

Я согласен с ответом Илии. Я считаю, что использование клиентской стороны XSLT - сложная задача. Вы должны сделать много QA для этого. Но в то время как на стороне сервера вы не являетесь этим QA. Вы должны заботиться о всех типах клиентов и возможностях при использовании на стороне клиента. Возможно, ваш код может сломаться при использовании XSLT на стороне клиента.

Ответ 7

Я могу быть предвзятым, когда я это говорю, но работая над веб-приложением, которое делает это, я ненавижу его. Единственная причина, по которой она даже жизнеспособна, заключается в том, что клиентами являются только IE6+. Даже тогда есть проблемы с этим. Я считаю, что XSLT будет очень сложным и предложит, если вы собираетесь сделать это, чтобы получить хороший инструмент для отладки и редактирования XSLT. Почему бы не использовать JSON и jquery? Должна быть более стандартная и меньшая изменчивость на стороне клиента.