递归setTimeout模式
recursive setTimeout pattern
在阅读一篇关于Long Polling的文章时,我对以下两种风格的setInterval
有点困惑
1-
setInterval(function(){
$.ajax({ url: "server", success: function(data){
//Update your dashboard gauge
salesGauge.setValue(data.value);
}, dataType: "json"});
}, 30000);
2-
(function poll() {
setTimeout(function() {
$.ajax({ url: "server", success: function(data) {
sales.setValue(data.value);
}, dataType: "json", complete: poll });
}, 30000);
})();
正如博客所说-关于第二个片段,
因此,这种模式不能保证每se。但是,它确实保证前一个间隔已经完成然后调用下一个间隔。
为什么第二个片段保证上一个间隔已经完成?
我知道第一个(事件循环),但对第二个片段有点困惑。
为什么第二个片段保证上一个间隔已经完成?
在第一个示例中,无论先前的$.ajax()
调用是否完成,都以一定间隔调用$.ajax()
。
在第二示例中,直到$.ajax()
的complete
函数才再次调用poll
。
相关文章:
- setInteval vs setTimeout
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- setTimeout可以与闭包内的函数一起使用吗
- Javascript setTimeout for an array
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 执行动态模式弹出
- 递归setTimeout模式
- 如何将window.setTimeout与javascript和模块模式一起使用
- 显示模块模式的setTimeout
- setTimeout设置Bootstrap模式超时后不显示