我有一个页面,它在pagecreate事件中通过AJAX动态加载其内容。我想显示一个加载指示器。不幸的是,这似乎不起作用。
我的理论是它不起作用,因为页面加载本身会显示加载指示符并在页面加载后隐藏它:
有没有人成功保持加载指示器显示,即使在加载实际页面但AJAX数据没有?
答案 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();
}
});
}
- 然后它应该工作。