【发布时间】:2012-05-28 10:32:10
【问题描述】:
不确定我的问题表述是否正确,但我有以下代码。基本上是想发出一个 ajax 请求,检查回调,然后重新执行 ajax,直到它得到所需的响应(在示例中为 connectedvoter==1)。
问题是它只需要大约 80 毫秒,并且 xhr 的数量以这种速度非常快地达到巨大的数字。我试图想出一种“暂停”的方法,但我能想到的一切都占用了 cpu。
有没有办法“减慢”请求的数量,比如一两秒一次而不占用 CPU?
var connctedvoter = 0;
var govoters = function () {
$.ajaxSetup({
async: false
});
var url = "getconnectedvoter.php";
var data = {
userid: userid
};
$.getJSON(url, data, callback);
};
var pausevoters = function () {
console.log("pausing ajax voters");
};
var callback = function (response) {
if (response.error) {
return;
}
if (response.connectedvoter == 0) {
setTimeout(govoters, 150);
//govoters();
} else {
$('#vanid').html(response.vanid);
$('#name').html(response.name);
$("#mapurl").attr("src", response.mapurl);
$('.call').fadeIn();
return;
}
};
//DO THIS TO START
setTimeout(govoters, 150);
pausevoters();
【问题讨论】:
标签: javascript ajax