Есть ли ошибка с Google Chrome и JQuery ajaxStop - PullRequest
0 голосов
/ 29 июля 2011

Возможно, я неправильно использую событие JQuery ajaxStop, но оно не срабатывает для меня в Google Chrome. Вот мой код:

if($("#calculateButton").length > 0) {
    console.log("Setting calc button event");

    $("#calculateButton").ajaxStop(function() {
        console.log("calculate on ajax stop");
        $(this).unbind('ajaxStop');
        $(this).click();
    });

    console.log("Sending test AJAX request");
    $.ajax({
       type: "POST",
       url: "Backend/getcustomerrate.php",
       success: function() {
           console.log("AJAX request finished");
       }
    });

    //this is what I had before testing
    //Loading.loadOldQuote(qn, Loading.FOOTER);
} else {
    console.log("Could not find calculate button");
    setProgress("FATAL ERROR: Could not find calculate button");
}

Следующий вывод моей консоли:

Настройка события кнопки calc

Отправка теста AJAX-запроса

AJAX-запрос завершен

Я в замешательстве. Разве это не должно было вызвать событие .ajaxStop?

РЕДАКТИРОВАТЬ: тот же код вызывает соответствующее событие в Firefox, которое я в основном использую для тестирования.

EDIT2: в то же время могут выполняться другие AJAX-запросы, но эти AJAX-запросы do завершаются в конце концов. Я некоторое время оставлял страницу открытой при включенной консоли, и ожидаемое сообщение («рассчитать на остановке AJAX») не появлялось.

РЕДАКТИРОВАТЬ3: Спасибо всем. Оказывается, что Chrome останавливает выполнение скрипта при обнаружении ошибки и ничего не выводит на консоль, если это происходит. Ошибка не срабатывает в Firefox.

1 Ответ

0 голосов
/ 29 июля 2011

Я создал быстрый jsfiddle , и, похоже, он работает.

Существуют ли другие запросы ajax, которые вызываются одновременно или во время первоначального запроса?

Согласно документации :

Всякий раз, когда Ajax-запрос завершается, jQuery проверяет, есть ли другие ожидающие Ajax-запросы. Если ничего не осталось, jQuery вызывает событие ajaxStop.

Если что-то еще работает, это событие не сработает. Это то, что вы могли бы сделать вместо этого в функции success запроса ajax?

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