下面是应该每10秒钟检查一次数据页面(一个简单的整数)。当整数存在时(data!= null),然后提醒并停止好的时间间隔)。为什么这个js if子句不停止循环?
但是 相反,它每隔10秒排队一次警报。当脚本终于找到它正在寻找的整数时,大量的警报弹出......每十秒钟一次。如果脚本持续50秒,则会在页面加载50秒后立即收到5条警报。
有什么问题? if (data != null) {
是否不应该阻止警报触发......直到有数据?我很茫然。另外,“数据”从不出现在警报中。
var pinger;
$(document).ready(function() {
var pinger = setInterval(function(){
$.get("/ajax.php", function(data) {
if (data != null) { /** Shouldn't this line stop loops? **/
alert("alert" + data);
clearInterval(pinger);
}
});
}, 10000);
});
您正在定义您的pinger变量两次。您是否尝试省略第一个(全局)声明? – m90
为了使clearInterval正常工作,我已经阅读过此类文档。但是我遇到了更大的问题... setTimeout是要走的路。 – Ryan