2011-10-24 6 views
1

pagecreateイベントでAJAX経由でコンテンツを動的に読み込むページがあります。ローディングインジケーターを表示したい。残念ながら、これは動作していないようです。jQuery MobileでpagecreateイベントでAJAX経由でデータをロードする際の読み込みインジケータを表示

  • ページ:ショーローディングインジケータ
  • AJAX:ページの読み込み自体はロードインジケータを示し、ページがロードされた後、それを隠すため

    私の理論は、それが動作しないということであるショーローディングインジケータを

  • ページ:非表示のローディングインジケータ
  • AJAX:非表示ローディングインジケータ

は、誰もが成功しました実際のページがロードされてもAJAXデータがロードされていない場合でもローディングインジケータが表示されたままにしておきますか?

答えて

1

まず、ローディングインジケータを表示するにはpageshowイベントでこれを実行する必要があります。 ではローダーが表示されません。が表示されます。

はその後AJAX呼び出しで、完全にローダーを隠す: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(); 
      } 
     }); 
} 

ようにそれが動作するはず-then。

関連する問題