Выполнение JavaScript для рендеринга HTML для кэширования на стороне сервера

StackOverflow https://stackoverflow.com/questions/15007

Вопрос

Существует множество виджетов, предоставляемых сайтами, которые фактически представляют собой фрагменты JavaScript, генерирующие HTML с помощью ДОМ манипуляция или document.write().Вместо того, чтобы еще больше замедлять работу браузера дополнительными запросами и доверять еще одному поставщику, который будет быстрым, надежным и не изменит вывод виджета, я хочу выполнить * JavaScript для генерации отображаемого HTML-кода, а затем сохранить этот HTML-источник.­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

Вещи, которые я изучал и которые кажутся неосуществимыми или слишком сложными:

  1. Браузер ссылок (только не рысь!)
  2. Безголовое использование Xvfb плюс Firefox плюс Greasemonkey (ого)
  3. Инструментарий для браузера на основе Java Cobra (лучший выбор!)

Есть какие-нибудь идеи?

** Очевидно, что вы не можете полностью выполнить JavaScript, поскольку у него не обязательно есть путь выхода, но вы поняли идею.

Это было полезно?

Решение

Информация из Википедии "Серверный JavaScript" в статье перечислены многочисленные реализации, многие из которых основаны на Mozilla Носорог Конвертер JavaScript в Java или его двоюродный брат Обезьяна -паук (тот же движок, что и в Firefox и других браузерах на базе Gecko).В частности, что-то простое вроде mod_js для Apache может подойти под ваши нужды.

Другие советы

Если вы просто используете обычный JS, Носорог должно сработать.Но если JS-код на самом деле вызывает DOM-методы и так далее, вам понадобится полноценный браузер. Лом это могло бы вам помочь.

Действительно ли это ускорит работу пользователей, не вызывая проблем с совместимостью?

Есть проект Джона Ресига Перенос браузера на сервер:"среда браузера / DOM, написанная на JavaScript, которая работает поверх Носорог;способен запускать jQuery, Prototype и MochiKit (по крайней мере) ".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top