不知道我是否正確解決了我的問題,但是我擁有下面的代碼。基本上想做一個ajax請求,檢查回調,並重新執行ajax,直到它獲得所需的響應(在示例connectedvoter == 1)。減緩阿賈克斯呼叫/ xhr請求的最佳方式
問題是它只需要80ms,並且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();
哈,很好,很容易...謝謝大概應該已經意識到! –