【发布时间】:2013-08-09 18:34:22
【问题描述】:
我是 javascript 和 jquery 的初学者,正在寻找一种在 jquery 中进行长轮询的有效方法。 我遇到了这段代码,对属性 complete: 感到困惑。我知道“完整”的使用,但是这段代码会导致递归函数调用吗?
(function poll(){
$.ajax({ url: "server", success: function(data){
//Update your dashboard gauge
salesGauge.setValue(data.value);
}, dataType: "json", complete: poll, timeout: 30000 });
})();
提前致谢。 :)
【问题讨论】:
-
是的,它将是递归的。不过,与替代方案相比,我认为长轮询永远不会有效。
-
@KevinB 那你有什么建议呢?
-
如果在您的情况下实施起来不太难,websockets。
-
@AshwinSurana javascript 不会那样递归。您可能会遇到嵌套范围的问题,但它不会耗尽内存。如果您担心嵌套范围,请将回调替换为
function(){setTimeout(poll,0)}。但只有在需要时才这样做。我什至不确定不这样做会不会有问题。 -
+1 取消投票。问题相当清楚,人们对所问的问题做出了错误的假设,而不是 OP 的错。
标签: javascript jquery ajax long-polling