2011-01-25 83 views
1

我正在用javascript写一个动画,并且希望打印给用户加载时间,直到加载所有图像。javascript:直到页面加载的时间

图像HTML设置为:<img src="" />

在那里的JavaScript代码知道所有加载页面时?
即时间,直到的onLoad()事件称为

+3

ahmed,@ThiefMaster试图说当一个答案解决了你的问题时,接受它(在投票箭头下面的大选中标记)被认为是礼貌的。这让社区知道你正积极地参与你的问题,并且不打算转储和运行,可以这么说。这当然不是*必需的*。 (几乎没有堆栈溢出是必需*。) – 2011-01-25 16:30:57

+0

好吧,我不知道有这样的功能......谢谢 – Alex 2011-01-25 17:17:38

回答

2

你也许可以在页面

<span id="imgsMsg"></span> 
<script type="text/javascript"> 
var imgs = document.images; 
var len = imgs.length; 
var percent = 100; 
var count=0; 
var messagecontainer = document.getElementById("imgsMsg"); 
for (var i=0;i<len;i++) { 
    imgs[i].onload=function() { 
    count++; 
    messagecontainer = (percent - Math.floor((100/len)*count))+"% loaded"; // hope my math is correct ;) 
    } 
} 
</script> 
</body> 
0

这并不难做到,与$(window).load

var readytime = new Date().getTime(); 
$(window).load(function() { 
    var loadingtime = (new Date().getTime() - readytime)/1000; // in seconds 

    $('#yourTimingField').text(loadingtime + ' seconds'); 
}); 

它测量脚本的这部分的加载之间的时间量所有子元素。

+0

你好,我想打印的用户时间,直到页面加载后,不加载页面后的时间。 – Alex 2011-01-25 14:40:20

2

你也许可以做的最好的是跟踪已加载图像的数量,并分割为总数的底部做这样的事剩余的图像数量。像这样的:

var total_loaded = 0; 
$('img').load(function() 
{ 
    total_loaded += 1; 
    var load_progress = total_loaded/$('img').length; 
    // you can now use load_progress to show the user a rough progress animation 
}); 

如果你想要一个“剩余时间”显示,你需要伪装它。例如,您可以跟踪总时间,并将其与​​变量进行比较以获取剩余时间。