【问题标题】:Why PhantomJS render page use window.setTimeout为什么 PhantomJS 渲染页面使用 window.setTimeout
【发布时间】:2014-02-26 15:37:43
【问题描述】:

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

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

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

谢谢...尼克。

【问题讨论】:

    标签: javascript phantomjs


    【解决方案1】:

    page.open 回调仅在页面加载时调用。这并不代表你的页面已经全部加载完毕,js已经全部执行完毕。

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

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

    有时 200 毫秒是不够的,您必须增加持续时间。

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

    【讨论】:

    • 谢谢...顺便说一句,PhantomJS 是制作 PDF 报告的绝佳工具:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2018-04-28
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    相关资源
    最近更新 更多