使用 jsdom 加载 ajax 应用程序

发布于 2024-11-29 20:00:26 字数 460 浏览 2 评论 0原文

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

我一直在玩 jsdom & Node.js 尝试引导应用程序,并可以加载基本模板内容,但应用程序似乎永远不会启动。

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

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

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

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

I'm looking for a solution to bootstrap a client side app (written in Backbone.js) on the server, so that I can serve correct content to crawlers and non-js consumers.

I've been playing around with jsdom & nodejs in an attempt to bootstrap the app, and can get it as far as loading in the basic template content, but the app appears to never start.

I've tried 2 different solutions to make sure that I have all the dependencies necessary and the app is loading correctly:

  1. I tried using jsdom.env() with all the scripts usually included inline.
  2. I tried using jsdom.jsdom() and making sure that FetchExternalResources, ProcessExternalResources, and MutationEvents were all correct and on.

Neither seem to fire the window.onload event though. I'm wondering if jsdom possibly doesn't fire this, or maybe calls it's callback after it would have normally been fired?

Is this a task that is possible in jsdom?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

み格子的夏天 2024-12-06 20:00:26

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

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

I wouldn't wait for window.onload as jsdom doesn't fetch images/css (yet). When using jsdom.env, you can simply treat the callback as a "hey everything is ready now" event.

If your app relies on window.onload, you can trigger it inside the aforementioned callback.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文