如果某些内容匹配,Section()
负责查看数据库并获取任何HTML代码。如果没有匹配,则没有回调(但我可以回调一个空的东西)。
然后调用addIt()
并显示HTML。工作正常。
我的问题是什么时候从数据库中获取一些HTML来停止计时器?因为现在它每10秒添加一次HTML。
function addIt(data) { $(data).insertAfter('#hello'); }
setInterval(function Section(){
$.getJSON("domain"+ number, addIt);
}, 10000);
答案 0 :(得分:1)
也许是这样的:
var x = setInterval(function Section(){
$.getJSON("domain"+ number, addIt);
}, 10000);
if( // something ) {
clearInterval(x);
}
答案 1 :(得分:0)
var timerId;
function addIt(data) {
$(data).insertAfter('#hello');
}
function section() {
$.getJSON().done(function(data) {
addIt(data);
if (timerId) {
clearInterval(timerId);
}
});
}
timerId = setInterval(section, 10000);
答案 2 :(得分:0)
我绝不会在一段时间内调用AJAX。而是使用回调再次调用
function Section(){
$.getJSON("domain"+number,addIt);
}
function addIt(data) {
if (data) $(data).insertAfter('#hello');
else setTimeout(Section,10000); // call again in 10 seconds unless data was returned
}
Section(); // first call
如果在不返回数据时调用导致错误,请尝试:
$.getJSON("domain"+number, function(data) {
if (data) $(data).insertAfter('#hello');
})
.fail(function() {
setTimeout(Section,10000);
});