Jquery — проверить, есть ли соединение с сервером с помощью ajax

#jquery #ajax

#jquery #ajax

Вопрос:

Я пишу веб-приложение, используя jQuery. Я хочу проверить, может ли код получить доступ к серверу перед обработкой материала. Вот моя функция:

 function CheckServerStatus() {
    $.ajax({
        url: "website.asmx/CheckStatus",
        async:false
        success: function() {return true;}
        error: function() {return false;}
    });
}
  

В коде на стороне сервера CheckStatus функция возвращает 1. И функция вызывается примерно так:

 function RunProcess() {
    if (CheckServerStatus()) {
        //Do work
    }
    else {
        //create alert
    }
}
  

Каждый раз, когда вызывается функция. Функция CheckServerStatus возвращает false.

Я хочу, чтобы функция возвращала true, если функция ajax успешно подключается к серверу.

Как я могу это сделать?

Ответ №1:

Вы можете сделать это с помощью обратных вызовов, а также сделать его асинхронным

В функции CheckServerStatus зарегистрируйте 2 параметра

1-й будет обработчиком успеха

и 2-й обработчик ошибок

а затем подключите каждый из них с помощью $.ajax успешных и ошибочных обратных вызовов

 function CheckServerStatus(successHandler,errorHandler) {
   $.ajax({
            url: "website.asmx/CheckStatus",
            async:true,
            success: successHandler,
            error: errorHandler
        });
}

 function RunProcess() {
    CheckServerStatus(

        function(){
            alert('we will do work here');
        }, 
        function(){
            alert('failed to connect');
        }
    )
 }