我的代码存在问题。 基本上我实现了一个轮询机制,但当它应该停止轮询时,它继续轮询。轮询无限。
还有其他方法可以阻止它停止吗?
函数SearchPoll只被调用一次。
function SearchPoll(){
var i = setInterval(function ()
{
var url = "Search.aspx?polling=true";
$.ajax(
{
url: url,
success: function (data)
{
clearInterval(i);
},
error: function ()
{
clearInterval(i);
}
});
}, 1000);
}
答案 0 :(得分:0)
这个小提琴似乎正常工作...... http://jsfiddle.net/sramam/yZTAK/
答案 1 :(得分:0)
如果要杀死所有请求,则需要使用从$ .ajax返回的XMLHTTPRequest对象。这是一个example:
function SearchPool(){
var xhrArray = [],
interval = setInterval(function () {
var url = "Search.aspx?polling=true";
xhrArray.push($.ajax({
url: url,
success: function (data) {
for(var i = 0; i < xhrArray.length; i+= 1) {
xhrArray[i].abort();
}
clearInterval(interval);
},
error: function () {
clearInterval(interval);
}
}));
}, 20);
}
SearchPool();