执行JavaScript以渲染HTML进行服务器端缓存

15

有很多由网站提供的小部件,实际上是由JavaScript生成HTML的,通过DOM操作或document.write()。我想执行JavaScript以生成渲染后的HTML,然后保存该HTML源代码,而不是通过额外的请求让浏览器变得更慢,并信任另一个提供商快速,可靠并且不会更改小部件输出内容。

我已经研究过但看起来行不通或太难的事情:

  1. Links浏览器(不是lynx!)
  2. Xvfb加Firefox加Greasemonkey的无头使用(天哪)
  3. 全Java浏览器工具包Cobra(最好的选择!)

有什么想法吗?

** 显然你不能完全执行 JavaScript,因为它并不一定有一个出口路径,但你已经有了这个想法。

3个回答

4
维基百科的"服务器端JavaScript"文章列出了许多实现,其中许多是基于Mozilla的Rhino JavaScript-to-Java转换器或其近亲SpiderMonkey(与Firefox和其他基于Gecko的浏览器中发现的相同引擎)。特别是像mod_js这样简单的Apache模块可能适合您的需求。

2
如果您只是使用纯JS,Rhino 就可以胜任。但是,如果 JS 代码实际上调用了 DOM 方法等,那么您将需要一个完整的浏览器。 Crowbar 可能会对您有所帮助。
这真的会让用户更快地访问网站而不会引起兼容性问题吗?

2

这里有John Resig的项目“将浏览器引入服务器”:它是一个基于JavaScript编写的运行在Rhino之上的浏览器/DOM环境,能够至少运行jQuery、Prototype和MochiKit。


Resig的东西正是我正在寻找的。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接