如何在javascript中计算图像加载/渲染时间?

时间:2013-03-29 08:03:43

标签: javascript jquery image

有没有办法在网页上使用javascript / jquery查找图片加载/渲染时间?

2 个答案:

答案 0 :(得分:4)

这里正确的答案是使用Chrome或Firefox / Firebug等浏览器中内置的开发工具,它们会告诉您页面中所有资源的加载时间。这些工具可以访问纯JavaScript可以访问的更多信息。

使用javascript,您可以精确计算使用javascript指定的图像的加载时间。您无法使用javascript精确计算HTML中指定的图像的加载时间,因为没有精确的方法可以在图像开始加载的瞬间启动javascript时间测量。

计时javascript中指定的图像:

var startTime = new Date().getTime();
var img = new Image();
img.onload = function() {
    var loadtime = new Date().getTime() - startTime;
    console.log("image took " + loadtime + "ms to load");
};
img.src = "http://www.whatever.com/testimg.jpg";

您可以为HTML中指定的图像做的最好的事情是:

<script>
var startTime = new Date().getTime();
function doneLoading() {
    var loadtime = new Date().getTime() - startTime;
    console.log("image took " + loadtime + "ms to load");
};    
</script>
<img src="http://www.whatever.com/testimg.jpg" onload="doneLoading()">

上一个示例中的<script>标记需要紧接在<img>标记之前。

但严重的是,使用Chrome或Firebug中的开发工具,您可以确切地看到所有页面资源需要加载多长时间。

答案 1 :(得分:0)

var resourceList = window.performance.getEntriesByType("resource");
           for (i = 0; i < resourceList.length; i++)
           {
              if (resourceList[i].initiatorType == "img")
              {
                 alert("End to end resource fetch: "+ (resourceList[i].responseEnd - resourceList[i].responseStart ));
              }
           }

https://jsfiddle.net/q4euntat/5/

您可以参考上面的链接,在jsfiddle上实现它。