jQuery/javascript检查是否正在加载任何内容

jQuery/javascript检查是否正在加载任何内容,jquery,events,networking,loading,traffic,Jquery,Events,Networking,Loading,Traffic,一旦一个文档被完全加载,我的javascript就会开始改变一些东西,比如img源和背景图像。 这些更改以不同的方式发生(例如,通过在JS中预加载或直接更改src属性)。但是,对于这些更改,需要加载新文件。 这些更改是随机发生的,从随机源到随机元素,因此我无法提供元素或源的列表 在某些时刻,我的javascript(jQuery)需要检查是否有任何内容仍在加载,或者是否所有内容都已完全加载 换句话说,我需要一种方法来检查是否有任何网络流量正在进行 理想情况下,我没有办法在每次请求加载文件时将变量

一旦一个文档被完全加载,我的javascript就会开始改变一些东西,比如img源和背景图像。 这些更改以不同的方式发生(例如,通过在JS中预加载或直接更改
src
属性)。但是,对于这些更改,需要加载新文件。 这些更改是随机发生的,从随机源到随机元素,因此我无法提供元素或源的列表

在某些时刻,我的javascript(jQuery)需要检查是否有任何内容仍在加载,或者是否所有内容都已完全加载

换句话说,我需要一种方法来检查是否有任何网络流量正在进行

理想情况下,我没有办法在每次请求加载文件时将变量
load
设置为true,并在加载过程完成时将该变量设置为false,这样我就可以使用
while(load==true){loopscript()}
之类的方法在加载时循环一些脚本


有没有jQuery方法可以做到这一点?

您可以使用jQuery加载事件,但需要确保setInterval调用嵌入头部。下面的示例是加载一个页面,该页面的图像加载时间为5000ms。它每1000ms输出到控制台


var intervalID=setInterval(函数(){
控制台日志(“加载”);
}, 1000);
jQuery(window).load(函数(){
clearInterval(intervalID);
});

您可以使用为每个操作创建承诺,并将所有承诺推送到数组中

然后在解决所有承诺后使用更新加载变量


每个单独的承诺都需要在图像加载事件处理程序中解决,或者在该操作完成时可能触发的任何其他事件

huh?请务必使用此提供满足OP要求的演示。我以前尝试过这样做,但使用$(window).load(…)似乎无法解决我的问题。事件不会在每次开始加载时触发,这是我所需要的。相反,它看起来只有在窗口加载时才会触发,仅此而已。@charlietfl我应该先尝试我的方法。我试过了,但没用。对此很抱歉。@eds1999我已使其正常工作并提供了example@volatilevar谢谢,但这仍然不能回答我的问题。正如我写的“一旦一个文档被完全加载…”,所以我试图检测的网络流量在页面被完全加载后开始。当页面加载时,您提供的方法会触发一些代码,但在稍后发出加载请求时不会触发,例如,当您稍后尝试$(“#someimg”).attr(“src”,”)时