Прототип. Существуют ли события запуска / остановки AJAX для глобального запуска модального сообщения ожидания AJAX? - PullRequest
4 голосов
/ 13 марта 2011

Есть ли в Prototype события запуска / остановки AJAX, которые позволили бы вам создать один сценарий для глобального отображения модального сообщения ожидания во время загрузки AJAX?

Например, в jQuery я использую этот один сценарий вмакет приложения для глобального отображения модального диалогового окна ожидания для любых событий jQuery AJAX:

<script type="text/javascript">
$(document).ajaxStart(function () {
    $.blockUI({ message: '<h1><img src="../images/busy.gif" /> Just a moment...</h1>' });
});
$(document).ajaxStop(function () {
    $.unblockUI();
});
</script>

Спасибо - высоко ценится?

1 Ответ

9 голосов
/ 13 марта 2011

С помощью Prototype у вас есть доступ к переменной Ajax.activeRequestCount (, дополнительная информация здесь )

. В любое время она содержит количество активных запросов AJAX (во всяком случае, созданный Prototype), отслеживая их события onCreate и onComplete

EDIT

Не проверено, но что-то подобное должно работать:

Ajax.Responders.register({
  onCreate: showProcessing,
  onComplete: hideProcessing
});

function showProcessing() {
  if(Ajax.activeRequestCount > 0){
        $('inProgress').show();
    }
}

function hideProcessing () {
  if(Ajax.activeRequestCount <= 0){
      $('inProgress').hide();
  }
}
...