ajaxStop не срабатывает после ajaxStart иногда - PullRequest
0 голосов
/ 02 февраля 2020

Я использовал ajaxStart и ajaxStop, чтобы показать и скрыть загрузку следующим образом:

    $(document).ajaxStart(function () {
        $.LoadingOverlay("show", {
            fade:[100,100]
        });
    });

    $(document).ajaxStop(function () {
        $.LoadingOverlay("hide", {
            fade: [100, 100]
        });
    });

этот код работает. но иногда функция ajaxStop не срабатывает, и вам приходится нажимать клавишу F5 , чтобы перезагрузить страницу. потому что показ загрузки с ajax start не скрывался.

Не могу найти проблему.

моя jQuery версия 2.2.4 .

Обновлено

Я использовал ajaxComplete Вместо ajaxStop, но возникла та же проблема.

  $(document).ajaxStart(function () {
        $.LoadingOverlay("show", {
            fade:[100,100]
        });
    });

    $(document).ajaxComplete(function () {
        $.LoadingOverlay("hide", {
            fade: [100, 100]
        });
    });

Есть ли что-нибудь еще, что было бы полезным ?

1 Ответ

1 голос
/ 02 февраля 2020

use ajaxComplete

ajaxComplete вызывается всякий раз, когда запрос ajax завершается, либо успешно, либо с ошибкой.

ajaxStop вызывается, когда все ajax запросы завершены. Таким образом, в отличие от ajaxComplete, он не будет вызываться, если все еще выполняется запрос.

Вы должны использовать первое, если операция, которую вы хотите выполнить, должна быть сделана для каждого ajax запроса .

кредит на @ sje397 от { ссылка }

...