我为我的动态网站制作了加载“animation.gif”。这是我从 jquery 中使用的代码,用于显示和隐藏微调器:
$("#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});
http://docs.jquery.com/Ajax_Events
我的问题: 该网站有不同的内容(如 flash、图像、文本等)。因此,网站的某些部分比其他部分需要更长的加载时间。但是加载动画的持续时间总是相同的(太快了)。当我加载带有 flash(4mb) 和 html 文本的内容时,微调器隐藏得太快,内容仍在加载中。与总部图像相同..
我可以使用最小延迟,例如:
$("#this").delay(600).fadeOut("slow");
但我认为这根本不是一个好的解决方案。 在加载整个内容之前,如何不隐藏加载微调器?
最佳答案
您可以为页面中所有缓慢加载的元素创建一个标志列表。
然后开始监听每个元素的加载事件(你也可以用 flash 来做)。
每次加载一个元素时都会升起它的标志。
在后台运行一个间隔来监视这个列表,一旦所有列表项都被提升,移除加载微调器。
你也可以试试这个:
var iv = setInterval(function () {
if (document.all["theObject"].readyState == 4) {
clearInterval(iv)
alert("Object loaded (maybe).")
}
}, 100)
取自:http://www.webdeveloper.com/forum/showthread.php?160792-lt-object-onload ,
由兽人灼热者
关于javascript - 如何根据加载的内容设置 "loading spinner"的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995761/