Это решение работает не очень хорошо, потому что .ajaxStart
вызывается только для первого Ajax-запроса, тогда как .ajaxComplete
вызывается каждый раз, когда Ajax-запрос завершается. если вы запустите в своей консоли этот простой код:
$.ajax({url:"/"}); $.ajax({url:"/"})
и добавив некоторые записи в методы обработчика .ajaxStart
и .ajaxComplete
, вы увидите, что обработчик .ajaxStart
будет вызываться только один раз, а обработчик .ajaxComplete
- дважды. Так что ajaxRequestCount
станет отрицательным, и весь ваш дизайн облажался.
Я предлагаю вам использовать .ajaxSend
вместо .ajaxStart
, если вы хотите сохранить свой дизайн.
Другим решением будет использование .ajaxStop
вместо .ajaxComplete
, но при этом вам не нужен ajaxRequestCount
, вам нужен только логический параметр, который говорит, что за сценой выполняются запросы ajax.
Очень полезную информацию можно найти: http://api.jquery.com/category/ajax/global-ajax-event-handlers/
Надеюсь, это поможет.