Phantomjs 不呈现 Angular + Websockets 页面

Posted

技术标签:

【中文标题】Phantomjs 不呈现 Angular + Websockets 页面【英文标题】:Phantomjs not rendering Angular + Websockets page 【发布时间】:2015-05-18 11:45:31 【问题描述】:

在我正在使用的 Phantom(使用 http://prerender.io)中遇到一些复杂页面(嵌套视图复杂)根本不呈现的情况:

幻影 1.9.8 Websocket 1.2.0 角 1.3.1

我认为这是 websockets 的问题,因为我测试过的不依赖套接字的页面似乎可以正常加载,但是当我尝试强制 'transports': ['polling'] 时,它仍然无法通过 ajax 加载。

我想知道是否有可以克服任何 websocket 障碍的无头浏览器

【问题讨论】:

PhantomJS 1.x 不支持 websockets。 我已经看到了,但我能找到获取 Phantom 2.x 的唯一方法是从源代码构建它,然后我无法连接到我的 npm 包。跨度> 任何浏览器都可以用 xvfb 变成无头浏览器。这个问题本质上是在寻找一个与 *** 无关的工具。 Software Recommendations 是问这个问题的合适地方。 【参考方案1】:

您需要编译 PhantomJS 2.0,因为 1.9.8 不支持 websockets。我们正在为https://prerender.io 运行已编译的 PhantomJS 2.0,因此您可以尝试使用我们的生产服务器指向您的公共临时服务器。

【讨论】:

嗯,不幸的是,我无法在我的测试环境中连接 2.0,我决定重构我的代码库以在 Prerender 调用时使用 AJAX 调用,这样就成功了。 我可以确认 prerender.io 可以与 WebSockets 一起使用。快乐的客户。

以上是关于Phantomjs 不呈现 Angular + Websockets 页面的主要内容,如果未能解决你的问题,请参考以下文章

使用PhantomJS和node.js保存并呈现网页

Phantomjs 不会使用自定义样式呈现页脚

PhantomJS for Angular 4

PhantomJS 不适用于 Angular2 项目中的 Karma

Angular单元测试没有通过 - 异常的phantomjs错误

抓取通过JavaScript呈现的网页。 PhtantomJs还是其他任何工具?