0

所以我有一个 JS 间隔在脚本上执行加载命令.. 并在 div 上显示加载的数据..

一切都很完美,直到我把我的项目放到网上并看到一个问题(在后台)..

由于 setInterval 需要设置为 1 秒间隔,并且很多时候加载数据所需的时间超过 1 秒,我看到负载堆叠发生在后台......因为 setInterval 继续触发 $ .load() 每秒调用一次,无论加载的数据如何..

我正在考虑设置一个全局变量“is_loading”以在间隔中添加到我的函数中,以跳过例程的其余部分以防“is_loading”为真,..一旦最近的加载调用完成,它就会设置 is_loading = false..

这样,间隔不断触发/秒,没有负载调用在后台堆叠......

但是,由于我有几个间隔在整个页面上进行加载(请不要问为什么 lolz)我发现每个间隔都这样做很乏味..因此我想知道是否有一些我可以像事件一样“全局”做的事情当前未完成的加载/获取/发布在页面上的某种监听器?

建议会很棒

4

2 回答 2

0

这里有一些很棒的建议(和提醒),但我要做的是创建我自己的 setInterval 函数来做我想做的事情..

myInterval(function,time,hold_variable,attempts) where hold_variable = window.variable 在执行实际函数之前发出并检查。这是相同的变量名,我的函数在完成时将设置回 0 并允许再次调用自身

尝试=可选变量,由于hold_variable,间隔尝试调用函数失败的次数..

这是 setInterval 方面的一个非常直接的解决方案。唯一的不便是我的函数需要“设置”它们的每个 hold_variables(对每个函数进行微小修改)...

于 2013-04-26T02:49:32.940 回答
0

就像其他人所说的那样,setTimeout每当请求完成时,我都会使用它来发出新请求。

为了处理定时器上的多个请求,我建议制作某种主定时器/调度程序,以减少 setTimeouts 的运行量。当我做类似的事情时,谷歌的这篇文章对我很有帮助:

http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series-using.html

于 2013-04-25T14:39:58.880 回答