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

时间:2017-01-02 23:26:38

标签: jquery events networking loading traffic

文档完全加载后,我的javascript开始更改img源和背景图像等内容。 这些更改以不同的方式发生(通过在JS中预加载它们或直接更改例如src属性)。但是,对于这些更改,需要加载新文件。 这些变化是随机发生的,随机源是随机元素,因此我无法提供元素或来源列表。

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

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

理想情况下,每次请求加载文件时,我都不想将变量loading设置为true,并且如果完成加载过程,则将该变量设置为false,所以我可以使用while (loading==true) {loopscript()}之类的东西在加载时循环一些脚本。

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

2 个答案:

答案 0 :(得分:0)

您可以使用JQuery加载事件,但您需要确保setInterval调用嵌入在头部。下面的示例是加载一个页面,其中图像需要5000毫秒才能加载。它每1000毫秒输出到控制台。



const { oneKey, twoKey, threeKey } = this.props.largeObject;




答案 1 :(得分:0)

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

然后在所有承诺解决后使用$.when()更新加载变量。

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