Отображение индикатора загрузки при загрузке данных через AJAX на событие создания страницы с помощью jQuery Mobile - PullRequest
1 голос
/ 24 октября 2011

У меня есть страница, которая динамически загружает свое содержимое через AJAX при событии pagecreate.Я хотел бы показать индикатор загрузки.К сожалению, это не похоже на работу.

Моя теория заключается в том, что это не работает, потому что сама загрузка страницы показывает индикатор загрузки и скрывает его после загрузки страницы:

  • Страница: показать индикатор загрузки
  • AJAX: показать индикатор загрузки
  • Страница: скрыть индикатор загрузки
  • AJAX: скрыть индикатор загрузки

У кого-нибудь получилосьс индикатором загрузки, отображаемым даже после того, как загружена текущая страница, а у данных AJAX нет?

1 Ответ

1 голос
/ 08 февраля 2012

Прежде всего, вам нужно запустить это в событии pageshow , чтобы показать индикатор загрузки. В pagecreate загрузчик не может отображаться .

Затем при вызове AJAX скрыть загрузчик по завершению: вот так -

function getAllData()
{
        //$.mobile.pageLoading();  //for old jqm versions
        $.mobile.showPageLoadingMsg();

        $.ajax({
           url : "sample.com/path/to/file",
           success : function (data) {
                     $.mobile.hidePageLoadingMsg();
           },
           complete : function () {
                      //$.mobile.pageLoading(true);  //for old jqm versions
                      $.mobile.hidePageLoadingMsg();
           },
           error : function(XMLHttpRequest, textStatus, errorThrown) {
                   alert("Error text :"+textStatus+ " - type :" + errorThrown+" - Error message :" + XMLHttpRequest.responseXML);
                   //$.mobile.pageLoading(true);  //for old jqm versions
                   $.mobile.hidePageLoadingMsg();
           }
        });
}

- тогда должно работать.

...