私はファイルへのHTTPリクエストを実行しており、レスポンスに応じて "200"か別の応答かどうかに応じて成功またはエラー機能が実行されます。この要求は毎秒行われます。Javascript Intervalをクリアする
私が直面している問題は、すべてが一緒に実行され、最後のものが停止しないなど、多くのエラー応答が発生した場合です。間隔を終了して新しい間隔を開始します。
赤色のライトが速すぎます。誰でも私を助けることができますか?私のコードは以下の通りですが、私は数時間それを使って遊んでいますが、その底には足りないようです。
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
これは2番目のタイマーにのみ意味があります。私はそれに応じて答えを編集します。 –
Bulent、本当に助けていただきありがとうございますが、私はちょっとページから離れているかもしれません。あなたが私の問題を見ることができるように私はフィドルを付けました。 私は上記のコードをテストしましたが、それはある程度はうまくいくようです。助けができれば、私はあなたの答えを覚えて行きます。ありがとう https://jsfiddle.net/gtfyugg0/1/ – Harry