在加载数据时,暂停setInterval的最简单/最有效的方法是什么?的JavaScript / jQuery的

时间:2013-04-25 14:25:23

标签: javascript setinterval

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

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

由于setInterval需要设置为1秒间隔,并且数据加载所花费的时间很多次超过1秒,我看到后台发生了加载堆叠...因为setInterval继续无论加载数据是什么,每秒都会触发$ .load()调用..

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

这样,间隔持续发射/第二次无负载呼叫在后台堆叠......

然而,因为我有几个间隔在整个页面上进行加载(请不要问为什么lolz)我发现每隔一段时间这样做是相当繁琐的...所以我想知道我能做什么“全球”就像当前未完成的加载/获取/发布在页面上的事件监听器一样?

建议会很棒

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

myInterval(功能,时间,hold_variable,尝试) 哪里 在执行实际函数之前发出并检查了hold_variable = window.variable。这是我的函数完成时将设置回0的相同变量名,并允许另一个自身调用

attempts =可选变量,由于hold_variable而导致调用函数的间隔失败次数的计数..

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