Выполнение JavaScript для рендеринга HTML для кэширования на стороне сервера
Есть множество виджетов, предоставляемых сайтами, которые фактически представляют собой фрагменты JavaScript, которые генерируют HTML с помощью манипуляций с DOM или document.write()
. Вместо того, чтобы еще больше замедлять браузер за счет дополнительных запросов и доверять еще одному провайдеру, чтобы он был быстрым, надежным и не изменял вывод виджета, я хочу выполнить * JavaScript для генерации визуализированного HTML, а затем сохранить этот источник HTML.
Вещи, которые я изучил, которые кажутся невыполнимыми или слишком сложными:
- Браузер ссылок ( не lynx! )
- Безголовое использование Xvfb плюс Firefox плюс Greasemonkey ( yikes )
- Набор инструментов для браузера Cobra, полностью основанный на Java ( лучший вариант! )
Любые идеи?
** Очевидно, вы не можете полностью выполнить JavaScript, так как у него не обязательно есть путь выхода, но вы поняли идею.
Ответов (3)3
В статье Википедии «Серверный JavaScript» перечислены многочисленные реализации, многие из которых основаны на преобразователе JavaScript Rhino в Java от Mozilla или его кузене SpiderMonkey (тот же движок, что и в Firefox и других браузерах на базе Gecko). В частности, вам может подойти что-нибудь простое, например mod_js для Apache.
Есть проект Джона Ресига « Перенос браузера на сервер» : «среда браузера / DOM, написанная на JavaScript, работающая поверх Rhino ; способная запускать jQuery, Prototype и MochiKit (по крайней мере)».