15

网站提供了许多小部件,这些小部件实际上是 JavaScript 的一部分,它们通过DOM操作生成 HTML 或document.write(). 我不想通过额外的请求进一步降低浏览器的速度,并相信另一个提供程序快速、可靠且不会更改小部件输出,我想执行* JavaScript 以生成呈现的 HTML,然后保存该 HTML 源。

我研究过的事情似乎不可行或太难了:

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

有任何想法吗?

** 显然你不能真正完全执行 JavaScript,因为它不一定有退出路径,但你明白了。

4

3 回答 3

4

Wikipedia 的“服务器端 JavaScript”文章列出了许多实现,其中许多基于 Mozilla 的Rhino JavaScript-to-Java 转换器,或其表亲SpiderMonkey(与 Firefox 和其他基于 Gecko 的浏览器中的引擎相同)。特别是像Apache 的mod_js这样简单的东西可能会满足您的需求。

于 2008-08-18T18:26:10.300 回答
2

如果您只是使用纯 JS,Rhino应该可以解决问题。但是如果 JS 代码实际上是在调用 DOM 方法等等,你将需要一个成熟的浏览器。撬棍可能会帮助你。

这真的会让用户的事情变得更快而不会导致兼容性问题吗?

于 2008-08-18T18:27:03.183 回答
2

John Resig 的项目将浏览器带到服务器:“浏览器/DOM 环境,用 JavaScript 编写,运行在Rhino之上;能够运行 jQuery、Prototype 和 MochiKit(至少)。”

于 2008-08-26T11:31:28.193 回答