私のサイトにいくつかのdivがありますが、私は1つずつ更新したいと思います。一度に200以上のリクエストでサーバーを迷惑メールにしないために、それぞれ1秒ずつ遅延させたいと思います。 >ネットワーク、それはすべてが保留し、それらを一つずつロードとしてロードされますが、ワット示し - クロームdevに
function getUpdate($box) {
var $so = $box.attr('data-so');
var $url = $('#ajax-route-object-status').val();
$.get($url, {
so: $so
}).success(function (data) {
var $bg = 'bg-gray';
if (data.extra.isStarted === true && data.extra.isFinished === false) {
$bg = 'bg-orange'
}
if (data.extra.isStarted === true && data.extra.isFinished === true) {
$bg = 'bg-green'
}
if (data.extra.isLate === true && data.extra.isFinished === false) {
$bg = 'bg-red'
}
$box.removeClass('bg-gray').removeClass('bg-green').removeClass('bg-orange').removeClass('bg-red').addClass($bg);
});
}
:
var $tourBox = $('.tour-box');
$tourBox.each(function() {
var $box = $(this);
setTimeout(function() {
getUpdate($box);
}, 1000);
});
更新機能:私が試した何
/アウト遅延:
あなたが39との間に見ることができるように07および3940では、単に半秒の遅延があります。タイムアウトが5000になってもこれは変わりません。
「1秒ごとに」とはどういう意味ですか?すべてのリクエストが1秒間隔で行われることを意味しますか、またはすべてのリクエストは1秒後に行われることを意味しますか?あなたのコードがやっていることが原因です。 'setTimeout'はJavaScriptの実行を一時停止しません。あなたのコードがしていることは、1秒後にすべてのget要求を設定することです。 – j4rey89
期待されるコールバックとして機能することは、このように動作すると考えられます。コールバック関数の仕組みを理解するために、http://prashantb.me/javascript-call-stack-event-loop-and-callbacks/を見てください。 – ArunBabuVijayanath