我正在對文件運行HTTP請求,並根據響應是「200」還是其他響應運行成功或錯誤功能。此請求每秒發生一次。清除Javascript時間間隔
我面臨的問題是當我得到很多錯誤響應時,他們都一起運行,最後一個不停止例如結束間隔開始一個新的。
紅燈開始閃爍得太快。誰能幫我嗎。我的代碼在下面,我現在一直在玩它幾個小時,但似乎無法達到它的底部。
var requestResponses = {
greenLight: $('.cp_trafficLight_Light--greenDimmed'),
redLight: $('.cp_trafficLight_Light--redDimmed'),
greenBright: 'cp_trafficLight_Light--greenBright',
redBright: 'cp_trafficLight_Light--redBright',
init: function (url) {
setInterval(function() {
requestResponses.getResponse(url);
}, 1000);
},
successResponse: function() {
var redBright = requestResponses.redBright,
greenBright = requestResponses.greenBright;
requestResponses.errorCode = false;
requestResponses.redLight.removeClass(redBright);
requestResponses.greenLight.addClass(greenBright);
},
errorResponse: function() {
requestResponses.runOnInterval();
},
runOnInterval: function() {
// clearInterval(runInterval);
var redBright = requestResponses.redBright,
greenBright = requestResponses.greenBright,
redLight = requestResponses.redLight;
requestResponses.greenLight.removeClass(greenBright);
var runInterval = setInterval(function() {
if (requestResponses.errorCode === true) {
redLight.toggleClass(redBright);
}
}, 400);
},
getResponse: function (serverURL) {
$.ajax(serverURL, {
success: function() {
requestResponses.errorCode = false;
requestResponses.successResponse();
},
error: function() {
requestResponses.errorCode = true;
requestResponses.errorResponse();
},
});
},
errorCode: false
}
requestResponses.init('/status');
感謝您的幫助。
我感謝您的幫助,但我現在的問題是光不會不斷閃爍,但僅限於每次請求。我需要燈光持續閃爍,而不是變慢或變快。 – Harry
然後這隻適用於你的第二個計時器。我將相應地編輯答案。 –
比倫特,我真的很感謝你的幫助,但我想我們可能會略微偏離頁面。我附上了一個小提琴,以便您可以看到我的問題。 我測試了上面的代碼,但它似乎只在某種程度上起作用。如果你能幫忙,我會贊成你的答案並繼續前進。謝謝 https://jsfiddle.net/gtfyugg0/1/ – Harry