您是否设置了超时,因为您想确保首先读取第一个 URL,然后按顺序读取第二个 URL?如果是这样的话,我可能会建议一个新的模式,就像这样......
(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 请求中重叠或纠缠在一起。一个完成后,另一个重新开始,不断轮询,直到我们切换到不同的页面。