我如何使用javascript循环测试图像加载的时间
How do I test the time images take to load using a javascript loop
我正在尝试执行一些测试,看看不同的图像需要多长时间才能返回到我的浏览器。我正在使用一个javascript for循环。然而,循环似乎在加载第一个图像之前运行,并且返回没有给出准确的答案。下面是我的代码:
for (var radius=1; radius<10; radius++)
{
var startTime = new Date().getTime();
var img = new Image();
img.onload = function() {
var loadtime = new Date().getTime() - startTime;
console.log("image with radius: "+radius+" took " + loadtime + "ms to load");
};
url="http://test"+radius+"test2.com";
img.src = url;
}
结果,我得到:
image with radius: 10 took 175ms to load
image with radius: 10 took 368ms to load
image with radius: 10 took 463ms to load
image with radius: 10 took 608ms to load
image with radius: 10 took 751ms to load
image with radius: 10 took 895ms to load
image with radius: 10 took 1038ms to load
image with radius: 10 took 1181ms to load
image with radius: 10 took 1324ms to load
我尝试了不同的方法,试图让循环只在每个图像加载后才运行,但没有成功。什么好主意吗?谢谢!
您需要将radius
和startTime
变量放在闭包中,否则您将始终引用相同的变量:
function getLoadhandler(starttime, logmsg) {
return function() {
// get the local variables
console.log(logmsg+": "+(starttime-Date.now()));
};
}
for (var radius=1; radius<10; radius++) {
var img = new Image();
img.onload = getLoadhandler(Date.now(), "Load time of image with radius "+radius);
img.src = "http://test"+radius+"test2.com";
}
相关文章:
- 对于加载时间过长的循环来说是巨大的
- 谷歌如何确定网站加载时间
- 指令加载真的很长,检查加载时间的方法
- 如何使用队列呈现多个HighCharts以防止加载时间过长
- Javascript加载时间过长
- 如何计算angular JS应用程序(单页应用程序)的页面加载时间
- 如果页面加载时间超过 10 秒,如何刷新页面
- 画布 HTML 加载时间
- URL 长度是否会导致页面加载时间不同
- jquery加载时间和里面的css样式
- 我们怎么知道消除HTML/JS/CSS文件中的空白可以缩短页面加载时间呢
- 如何使用javascript来衡量第三方广告的加载时间
- 如何在boomrang页面加载时间中添加ajax执行时间
- CSS与Jquery、滑块、动画、灯箱..加载时间与功能
- mobile.加载时间过长,无法显示
- 如何改进使用JQuery Mobile的Android WebView的加载时间
- HTML5(测量页面加载时间)
- 如何为未加载、加载时间过长和被阻止的css文件编写回退
- Can-react.js可以提高加载时间
- Javascript窗口/图像加载时间 - 这应该不起作用,但它确实有效