我正在尝试从两个不同的URL加载内容,但是时间间隔不同。理想情况下,我想加载一个url等待10秒加载另一个并重复一遍又一遍。这就是我所拥有的,但它无法正常工作。它不断快速地来回加载网址,我无法阅读内容
setInterval(function(){
$('#ticker').load('misc.php?users=10');
}, 10000);
setInterval(function(){
$('#ticker').load('misc.php?news=10');
}, 20000);
答案 0 :(得分:1)
我有更好的建议
var links = ['misc.php?users=10', 'misc.php?news=10'];
var pointer = 0;
setInterval(function() {
$("#ticker").load(links[pointer++ % links.length]);
}, '10000');
答案 1 :(得分:0)
您可以尝试使用.load
的回调函数。
$('#ticker').load('misc.php?users=10', function(){
setInterval( function(){
$('#ticker').load('misc.php?news=10');
}, 10000 );
});
答案 2 :(得分:0)
您是否设置了超时,因为您希望确保首先读取第一个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请求中。一旦完成,另一个再次开始,不断轮询,直到我们改变到不同的页面。