私は現在、http 応答をチェックする Javascript コードを作成しました。成功した 200 コードの場合は信号機が緑色で表示され、200 コードでない場合は信号機が赤色で点滅します。
現時点での私の現在の問題は、次のように2つの引数を初期化関数に渡すことができるようにしたいことです
requestResponses.init('/status', "ATTR");
最初の属性はテスト対象の URL で、2 番目の属性は作成した HTML5 data-request属性の値です。
相互に影響を与えることなく、異なる URL を同時にターゲットとする同じページに複数の信号機を配置したいためです。
たとえば、データ リクエスト属性を作成し、それに4の値を指定します。次に、そのように接続できるようにしたいと考えています。
requestResponses.init('/status', "Four");
コード内で以下のような要素のターゲット設定を開始します。これにより、よりモジュール化され、再利用可能になります。
.cp_trafficLight[data-request="Four"]
私のコードが添付されており、動作する JSFiddle を見つけてください。
var requestResponses = {
greenLight: $('.cp_trafficLight_Light--greenDimmed'),
redLight: $('.cp_trafficLight_Light--redDimmed'),
greenBright: 'cp_trafficLight_Light--greenBright',
redBright: 'cp_trafficLight_Light--redBright',
settings: {
flashError: 400,
requestTime: 10000
},
init: function (url, targAttr) {
requestResponses.url = url;
requestResponses.getResponse(requestResponses.url, targAttr);
setInterval(function () {
if (requestResponses.errorCode === true) {
requestResponses.redLight.toggleClass(requestResponses.redBright);
}
}, requestResponses.settings.flashError);
},
successResponse: function (targAttr) {
requestResponses.errorCode = false;
requestResponses.redLight.removeClass(requestResponses.redBright);
requestResponses.greenLight.addClass(requestResponses.greenBright);
console.log(targAttr);
},
errorResponse: function (targAttr) {
requestResponses.greenLight.removeClass(requestResponses.greenBright);
},
getResponse: function (serverURL, targAttr) {
$.ajax(serverURL, {
success: function () {
requestResponses.errorCode = false;
requestResponses.successResponse(targAttr);
},
error: function () {
requestResponses.errorCode = true;
requestResponses.errorResponse(targAttr);
},
complete: function () {
setTimeout(function () {
requestResponses.getResponse(requestResponses.url);
}, requestResponses.settings.requestTime);
}
});
},
errorCode: false
}
requestResponses.init('/status', "TEST");
https://jsfiddle.net/8700h582/
どんな助けにも感謝します!