phantomJS网页超时

phantomJS网页超时,phantomjs,webpage-rendering,Phantomjs,Webpage Rendering,我已经设置了一个脚本来创建我们应用程序的网络照片。 它运行得非常完美,一切正常,直到我遇到一个url已损坏的图像: "<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />" PhantomJS 1.9引入了一个新的设置,resourceTimeout,它控制一个请求在被取消之前需要多长时间。除此之外,还有一个onResourceTimeout事件,在请求超

我已经设置了一个脚本来创建我们应用程序的网络照片。 它运行得非常完美,一切正常,直到我遇到一个url已损坏的图像:

 "<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />"

PhantomJS 1.9引入了一个新的设置,
resourceTimeout
,它控制一个请求在被取消之前需要多长时间。除此之外,还有一个
onResourceTimeout
事件,在请求超时时触发

下面是一段代码片段,说明了上述所有内容:

var page = require('webpage').create();  
page.settings.resourceTimeout = 5000; // 5 seconds
page.onResourceTimeout = function(e) {
  console.log(e.errorCode);   // it'll probably be 408 
  console.log(e.errorString); // it'll probably be 'Network timeout on resource'
  console.log(e.url);         // the url whose request timed out
  phantom.exit(1);
};

page.open('http://...', function (status) {
...
}

不幸的是,这些选项目前都没有很好的文档记录。我必须通过GitHub和来找到它们。

这是一个很好的问题。我们有一个类似的问题,只是有点难解决。我们有一个客户的网站,它有一个自定义的javascript,但写得很差。这似乎是导致webkit挂起的原因。我们有大量的网站需要测试,但是如果客户端的自定义js破坏了webkit,那么它就不起作用了。计时器obj是一个很好的解决方案,但我想知道是否有人有不同的解决方案?resourceTimeout应该终止调用的phantomjs进程。因为对我来说,它不是。phantomjs进程只是无限期地挂起。@Donato我认为resourceTimeout只会生成一些事件,这些事件可以在
页面中处理。onResourceTimeout
至少在版本1.9.8中会中断进程-因此PDF已损坏,但进程不会挂起。我还通过使用page.onResourceTimeout=函数(请求)…记录导致问题的资源,使用page.onResourceTimeout=。。。;不支持。改为使用page.property('onResourceTimeout',…)。有关页面#属性的更多示例,请参见自述文件。
var page = require('webpage').create();  
page.settings.resourceTimeout = 5000; // 5 seconds
page.onResourceTimeout = function(e) {
  console.log(e.errorCode);   // it'll probably be 408 
  console.log(e.errorString); // it'll probably be 'Network timeout on resource'
  console.log(e.url);         // the url whose request timed out
  phantom.exit(1);
};

page.open('http://...', function (status) {
...
}