質問の言い回しが正しいかどうかはわかりませんが、以下のコードがあります。基本的に、ajaxリクエストを作成し、コールバックを確認し、目的の応答が得られるまでajaxを再実行します(例ではconnectedvoter == 1)。
問題は、80ミリ秒ほどしかかからず、xhrの量がその速度で非常に速く膨大な数になることです。「一時停止」する方法を考え出そうとしましたが、考えられるすべてのことがCPUを使い果たしました。
CPUを使い果たすことなく、1秒に1〜2回と言うように、要求の量を「遅くする」方法はありますか?
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();