现在已经一整天了,我似乎仍然无法解决这个问题。
我正在为我的网站开发一个项目,我只需要知道如何在它自己的间隔内从 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 是。因此,如果您确实有解决办法,请也尝试举个例子。