最初のURLが最初に読み取られ、2番目のURLが2番目に読み取られるようにするために、タイムアウトを設定していますか?もしそうなら、私はそのような新しいパターンを提案するかもしれません...
(function($) {
var fn1 = function () {
$.ajax({
url: 'misc.php?users=10'
}).done(function (data) {
// update #ticker html with new user data
}).always(function () {
fn2(); // whether we succeed or not, we move on to fn2
});
}
, fn2 = function () {
$.ajax({
url: 'misc.php?news=10'
}).done(function (data) {
// update #ticker html with new news data
}).always(function () {
fn1(); // whether success or failure we start over on fn1
});
};
// ... somewhere down the line ...
$('#ticker').on('load', fn1); // start polling
})(jQuery);
ここで行っているのは、面倒なタイムアウトやインターバル呼び出しを必要とせずに、ある程度同期的に非同期呼び出しを行うことです。これにより、URLが重複したり、AJAXリクエストに巻き込まれたりすることなく、URLの順序が維持されます。そして、一方が終了するとすぐにもう一方が再開し、別のページに移動するまで常にポーリングします。