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

时间:2020-03-05 18:40:28  来源:igfitidea点击:

网站提供的许多小部件实际上是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(至少)。"