Есть функция, на включение выключение устройства по JSON URL запросу, решил добавить подтверждение, добавил и если быстро нажимать ок после сообщения, то запрос отправляется, если же подождать пару секунд, после сообщения, то запроса нету.
Почему так происходит ?
export function Supply(power){
if(power=='ON'){
if (confirm("Вкл?")) {
Modul_2.GetSettingTimeout('Transmiter.CGI?Supply$ON',Single,function () {
if(this=="OK"){
alert("Вкл");
}
if(this=="ERROR"){
//alert("Ошибка");
}
});
} else {
alert("отмена");
}
}
if(power=='OFF'){
if (confirm("выкл?")) {
Modul_2.GetSettingTimeout('Transmiter.CGI?Supply$OFF',Single,function () {
if(this=="OK"){
alert("Выкл");
}
if(this=="ERROR"){
//alert("Ошибка");
}
});
} else {
alert("отмена");
}
}
}
//==================================================================================================
/*
* @Описание: a one-time function call. cyclic function call
* @Параметр:
* @Возврат: Нету
*/
export function GetSettingTimeout(link,ModeFuncCall,CallbackTrue,CallbackFalse) {
(function _f() {
//var http2 = createRequestObject();
if( http2 ) {
//---------------------------------------------
var uriEncode = encodeURI(link).replace(/%20/g,'!').replace(/'/g,'~').replace(/%22/g,'"').replace(/%5B/g, '[').replace(/%5D/g, ']');
//console.log(uriEncode);
http2.open('GET', uriEncode, true);
//---------------------------------------------
http2.timeout =13000;
//---------------------------------------------
http2.onreadystatechange = function () {
if (http2.readyState == 4&&http2.status == 200) {
if (CallbackTrue && typeof(CallbackTrue) === "function") {
CallbackTrue.call(http2.responseText);
}
//CallbackTrue.call(http2.responseText);
//ConnectSuccessful();
if(ModeFuncCall==CYCLIC){
TimerID = setTimeout(_f, 1000);
}
}
};
//---------------------------------------------
http2.ontimeout = function() {
//Disconnect();
TimerID = setTimeout(_f, 1500);
if (CallbackFalse && typeof(CallbackFalse) === "function") {
CallbackFalse.call(http2.responseText);
}
};
//---------------------------------------------
http2.abort= function() {
if(StatusAbort==ClearAbbort){
//Disconnect();
StatusAbort=ClearAbbort;
TimerID = setTimeout(_f, 1000);
}
};
//---------------------------------------------
http2.send(null);
}else{
TimerID = setTimeout(_f, 1000);
}
})();
}