执行JavaScript渲染HTML以进行服务器端缓存
网站提供的许多小部件实际上是JavaScript的一部分,可通过DOM操作或者document.write()
生成HTML。我不想执行额外的请求并让另一个提供者快速,可靠且不更改窗口小部件输出的方式来降低浏览器的速度,我想执行* JavaScript来生成呈现的HTML,然后保存该HTML源。 -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------
我研究过的事情似乎不可行或者太困难了:
- 链接浏览器(不是lynx!)
- 无头使用Xvfb,Firefox和Greasemonkey(喜欢)
- 全Java浏览器工具箱Cobra(最好的选择!)
有任何想法吗?
**显然,我们无法真正完全执行JavaScript,因为它不一定具有退出路径,但是我们可以理解。
解决方案
回答
Wikipedia的"服务器端JavaScript"文章列出了许多实现,其中许多基于Mozilla的Rhino JavaScript到Java转换器或者其堂兄SpiderMonkey(与Firefox和其他基于Gecko的浏览器中的引擎相同)。特别是,像Apache的mod_js之类的简单对象可能会满足需求。
回答
如果我们只使用普通的JS,Rhino应该可以解决问题。但是,如果JS代码实际上是在调用DOM方法等等,那么我们将需要一个功能完善的浏览器。撬棍可能会。
这真的会为用户带来更快的速度而不会引起兼容性问题吗?
回答
John Resig的项目将浏览器带到服务器:"用JavaScript编写的浏览器/ DOM环境,在Rhino上运行;能够运行jQuery,Prototype和MochiKit(至少)。"