javascript - 如何根据加载的内容设置 "loading spinner"的持续时间

标签 javascript jquery ajax

我为我的动态网站制作了加载“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/

相关文章:

javascript - 在滚动发生之前获取旧值

javascript - 我如何为 IE 调试这个 ajax 脚本?

javascript - AJAX 文件上传中 loaded 和 total 的无意义值

javascript - Angular Ionic - 指令在 View 更改时不重新加载

javascript jquery 正则表达式替换

javascript - 使用 'for..in' 和 'if' 迭代条件删除对象属性

jquery - 单图像 Jquery 预加载器

jQuery mCustomScrollbar 不适用于 ajax 内容

javascript - JS中的类和函数?

javascript - 使用 Express/Node 编写的嵌套 Google DataStore 查询无法获取预期数据