Вычисление времени вызова ajax до получения ответа - PullRequest
1 голос
/ 11 января 2011

Я закончил приложение на Facebook, которое использует php и ajax для получения статистики о друзьях и поиска лучшего соответствия. Приложение использует вкладки и работает нормально, однако иногда, когда я нажимаю одну вкладку, чтобы отправить запрос ajax, и значок загрузки показывает, что я не получаю никакого ответа, и значок загрузки продолжает отображаться. Есть ли способ подсчитать, сколько секунд занимает ajax-вызов, чтобы я перенаправил пользователя на альтернативную html-страницу через x секунд?

Ответы [ 2 ]

1 голос
/ 02 августа 2012

Другой вариант - установить параметр времени ожидания объекта xmlhttprequest. В jQuery это опция тайм-аута в объекте параметров.

$.ajax ({
    timeout: 1000,
    success: successCallback,
    error: function (req, error, errorStatus) {
        if (error == 'timeout') {
            //send them to other page....
        }
    }
});

Возможно, вы захотите добавить еще несколько обработчиков ошибок ... также, поскольку xmlhttpobject2 имеет функцию обратного вызова функции тайм-аута, теперь этот процесс может быть более упрощен ...

Не цитируйте меня точно по синтаксису. Я пишу это на моем телефоне из памяти ....

1 голос
/ 11 января 2011

Чтобы получить то, что вы хотели бы получить, вы можете вызвать (через X секунд, используя setTimeout ()) функцию, которая проверяет, был ли загружен ответ ajax.Например:

var responseLoaded = false;    

function checkIt(){
    if(!responseLoaded)
        window.location = "%http://alternative-page%"; 
}

setTimeout(checkIt,10000) //after 10 seconds

responseLoaded может быть глобальной переменной, для которой можно установить значение true в конце ответа ajax.Или, в качестве альтернативы, вы можете проверить, присутствует ли какой-либо элемент DOM или JS var (т.е. созданный с помощью вызова AJAX) в это время (когда функция вызывается через setTimeout)

Затем вы можете использовать

Date.getTime()

Для получения текущей отметки времени.Вы можете сравнить метку времени в начале с меткой в ​​конце ответа ajax, чтобы увидеть общее время, которое требуется.(просто если вы хотите проверить среднее время загрузки ajax)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...