使用jQuery Mobile在pagecreate事件上通过AJAX加载数据时显示加载指示器

时间:2011-10-24 09:51:09

标签: jquery-mobile

我有一个页面,它在pagecreate事件中通过AJAX动态加载其内容。我想显示一个加载指示器。不幸的是,这似乎不起作用。

我的理论是它不起作用,因为页面加载本身会显示加载指示符并在页面加载后隐藏它:

  • 页面:显示加载指标
  • AJAX:显示加载指标
  • 页面:隐藏加载指标
  • AJAX:隐藏加载指标

有没有人成功保持加载指示器显示,即使在加载实际页面但AJAX数据没有?

1 个答案:

答案 0 :(得分:1)

首先,您需要在 pageshow 事件中运行此功能,以显示加载指示符。在 pagecreate中,加载程序无法显示

然后在AJAX调用中,隐藏加载器on complete:like this -

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();
           }
        });
}

- 然后它应该工作。