【问题标题】:Showing loading indicator when loading data via AJAX on pagecreate event with jQuery Mobile使用 jQuery Mobile 在 pagecreate 事件上通过 AJAX 加载数据时显示加载指示器
【发布时间】:2012-02-08 20:27:47
【问题描述】:

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

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

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

有没有人成功地在实际页面已加载但 AJAX 数据未加载后仍显示加载指示器?

【问题讨论】:

    标签: jquery-mobile


    【解决方案1】:

    首先,你需要在 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();
               }
            });
    }
    

    -那么它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多