javascript - 如何测量PhantomJS中的渲染时间?

标签 javascript browser phantomjs rendering

据我了解,当调用 page.open 时,PhantomJS 开始加载页面。 首先,它加载页面资源,然后渲染页面,然后调用 open 回调。

现在我只想知道渲染时间(即没有资源加载时间)。我可以这样做吗?

最佳答案

Phantom js 使用 webkit 引擎..因此它的行为将类似于 chrome。 网页的渲染在收到第一个资源后立即开始。它不会等待所有资源到达。 估计渲染时间的一个简单技术是在本地拥有资源,这样网络延迟就会最小化。并使用这样的脚本获取加载时间。

t = Date.now();
page.open(address, function(status) {
    if (status !== 'success') {
        console.log('FAIL to load the address');
    } else {
        t = Date.now() - t;
        console.log('Loading ' + address);
        console.log('Loading time ' + t + ' msec');
    }
    phantom.exit();
});

无论如何,这并不总是准确且可行的。
因此,另一种技术是计算最后一个资源到达后准备好页面所需的时间。(不需要进一步的网络请求)。如果某些脚本或资源有问题,这将给出估计。

var  t = Date.now();
page.onResourceReceived = function(response) {
    if(Date.now() > t)
    {
        t = Date.now();
    }
};

page.open(address, function(status) {
    if (status !== 'success') {
        console.log('FAIL to load the address');
    }
    else 
    {
        t = Date.now() - t;
        console.log('Loading ' + address);
        console.log('Rendering time' + t + ' msec');
    }
    phantom.exit();
});

关于javascript - 如何测量PhantomJS中的渲染时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383199/

相关文章:

javascript - 显示在 A 帧中计算秒数的文本计时器

javascript - 基础工具提示不起作用。对这个问题有什么想法吗?

javascript - 如何在 chrome 中禁用或隐藏弹出退出全屏(F11)?

javascript - 使用桥时,PhantomJS page.evaluate 返回未定义

Java 导出服务器 : (SVGConverter. java:convert:108) 响应:ReferenceError:找不到变量:Highcharts

javascript - 从数组中删除一个元素,然后在不使用全局变量的情况下保留其状态以备将来使用

javascript - 使用jquery.fileupload直接上传到amazon S3

linux - Eclipse 默认系统 Web 浏览器

javascript - Raphael JS/SVG 中的自动换行

javascript - PhantomJS 中的假 jQuery 鼠标事件