为什么PhantomJS渲染页面使用window.setTimeout

时间:2014-02-25 22:56:40

标签: javascript phantomjs

我目前正在使用 PhantomJS 来查看某些文档的报告,并查看我发现的一些示例。

window.setTimeout(function () {
    page.render(output);
    console.log(output);
    phantom.exit();
}, 200);

我想知道为什么要使用window.setTimeout?它会影响网页渲染吗?

谢谢......尼克。

1 个答案:

答案 0 :(得分:6)

仅在加载页面时调用page.open回调。这并不意味着页面中已加载了所有内容,并且js已完全执行。

此外,网页上的js可能不会立即执行,特别是如果网站使用AngularJS或Ember.js等MVC客户端框架:在页面加载事件之后会完成很多工作。

使用setTimeout会有一点延迟,以确保您的页面完全呈现。

有时候200毫秒没有投入,你必须增加持续时间。

另一种方法是使用waitfor.js example:等待测试条件为真,例如元素是可见的。