4

我正在寻找一种在服务器上引导客户端应用程序(用 Backbone.js 编写)的解决方案,以便我可以为爬虫和非 js 消费者提供正确的内容。

我一直在尝试使用 jsdom 和 nodejs 来引导应用程序,并且可以将其加载到基本模板内容中,但该应用程序似乎永远不会启动。

我尝试了 2 种不同的解决方案,以确保我拥有所有必要的依赖项并且应用程序正在正确加载:

  1. 我尝试将 jsdom.env() 与通常包含在内的所有脚本一起使用。
  2. 我尝试使用 jsdom.jsdom() 并确保 FetchExternalResources、ProcessExternalResources 和 MutationEvents 都正确且打开。

不过,似乎都没有触发 window.onload 事件。我想知道 jsdom 是否可能不会触发它,或者在它通常会被触发之后调用它的回调?

这是在 jsdom 中可以完成的任务吗?

4

1 回答 1

5

我不会等待 window.onload ,因为 jsdom 还没有获取图像/css。使用 jsdom.env 时,您可以简单地将回调视为“嘿,现在一切就绪”事件。

如果您的应用程序依赖于 window.onload,您可以在上述回调中触发它。

于 2011-08-17T02:29:14.410 回答