【问题标题】:Executing JavaScript to Render HTML for Server-Side Caching执行 JavaScript 以呈现 HTML 以进行服务器端缓存
【发布时间】:2010-09-06 02:42:24
【问题描述】:

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

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

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

有什么想法吗?

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

【问题讨论】:

    标签: javascript html rendering greasemonkey


    【解决方案1】:

    Wikipedia 的 "Server-side JavaScript" 文章列出了许多实现,其中许多基于 Mozilla 的 Rhino JavaScript-to-Java 转换器,或其表亲 SpiderMonkey(与在 Firefox 和其他基于 Gecko 的浏览器中找到)。特别是,像 mod_js 这样简单的 Apache 可能会满足您的需求。

    【讨论】:

      【解决方案2】:

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

      这真的会为用户提供更快的速度而不会导致兼容性问题吗?

      【讨论】:

        【解决方案3】:

        John Resig 的项目 Bringing the Browser to the Server:“浏览器/DOM 环境,用 JavaScript 编写,运行在 Rhino 之上;能够运行 jQuery、Prototype 和 MochiKit(至少)。”

        【讨论】:

        • Resig 的东西正是我想要的。
        猜你喜欢
        • 2011-01-09
        • 1970-01-01
        • 2012-08-09
        • 2016-12-30
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        • 2017-12-08
        相关资源
        最近更新 更多