有没有办法使用 javascript/jquery 在网页中查找图像加载/渲染时间?
问问题
9341 次
2 回答
6
正确的答案是使用 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 中的开发工具,您可以准确地看到所有页面资源的加载时间。
于 2013-03-29T08:12:15.857 回答
2
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 上实现它。
于 2017-05-12T19:36:22.590 回答