現在已經過了整整一天,我似乎無法解決這個問題。是否有可能更新函數內的間隔計時器?
我在爲我的網站工作,我只需要知道如何在自己的時間間隔內從IF語句更改間隔計時器。
間隔將檢查$ .post是否有錯誤,如果有錯誤,它將顯示第一個系統錯誤。 (以及增加另一個變量以進行錯誤#2
3秒鐘後,將顯示錯誤#2,這正是我想要的,但間隔持續保持在3秒,並且無論如何不工作我做的。
_staffIntervalID = 3000;
serverError = 0;
staffMsg = setInterval(function() {
if(isInChat == true) {
$.post('./slivechat.php', {staff:"true"}, function(data) {
if(data == "") return;
$('#display_msg').append(+ nl2br(data) + "<br />");
$('#display_msg').animate({scrollTop: $(document).height()}, 'slow');
})
.error(function() {
serverError++;
if(serverError == 1) {
$('#display_msg').append("<span style='color: red;'>System</span>: An error occured whilst we tried to fetch staff response. Please wait while I try to fix the this problem.<br />");
_staffIntervalID = 12000;
} else if(serverError == 2) {
$('#display_msg').append("<span style='color: red;'>System</span>: There seems to be an error, please check your conection. Or wait a few more seconds for the final verdict.<br />");
_staffIntervalID = 24000;
} else if(serverError >= 3) {
$('#display_msg').append("<span style='color: red;'>System</span>: Due to technical difficulties we are closing this chat. Please try again later! <br />");
clearInterval(staffMsg);
}
$('#display_msg').animate({scrollTop: $(document).height()}, 'slow');
console.log("ServerError: " + serverError + " timer: " + _staffIntervalID);
});
}
}, _staffIntervalID);
即使在CONSOLE.LOG它表明計時器發生了變化,但它一直在更新每隔3
真的希望我能得到這個儘快解決!
PS-的Javascript不是我的主要語言,PHP是。所以如果你有一個修復,請嘗試舉一個例子。
使用setTimeout而不是setInterval並根據您的條件更改持續時間。 – Virus721