下面是應該每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