0

我有一个使用 jQuery 的客户端 JS 库(称为 lib.js)。该库使用 ajax 触发 API,并根据收到的 json 响应呈现 html。

由于 SEO 问题,我想创建另一个基于 nodejs 的 API,它完成 lib.js 所做的所有客户端工作,并在服务器端创建 html 并用这个 html 响应。问题是我也想在服务器端使用相同的客户端库(lib.js),以便对 lib.js 所做的任何更改也会影响我的后端 API 的 html 响应。

所以,基本上我希望在服务器上执行客户端 JS,而不会对客户端 JS 库做太多更改。

我浏览了 jquery 和 jsdom 的节点模块,但找不到解决此解决方案的决定性方法。有没有更好的节点模块来做到这一点?有没有针对这个问题的好文章?

4

1 回答 1

0

我不确定是否有办法做到这一点,而且很难判断哪个库/程序能够做到这一点。一件事可能是使用幻像并在页面加载后导出生成的 html。另一件事可能是jsdom,它告诉自己它能够执行脚本,并从那里使用生成的 html。但是这两个选项都有一个缺点,如果你只使用那里的 html,所有附加的事件侦听器都会丢失。此外,该onload事件将再次触发,因此如果 dom 已经存在,您的脚本可能会发疯。总而言之,我怀疑这是否会奏效,但这也取决于脚本和它们在做什么。

于 2017-07-04T13:24:55.570 回答