加载微调器不会显示,即使页面渲染和显示大约需要4秒钟。我做了什么:点击按钮我调用一个方法,在方法的开头我称之为:function taskStat(){$ .mobile.loading(' show'); $ .mobile.changePage(" #taskStatistics",{transition:" none"}); .....然后调用其他方法,包括db调用(没有ajax调用)
在最后一种方法中我最后称之为:$ .mobile.loading(' hide');
从主页面到taskStatistics页面,动态创建和显示的本地数据库调用和html项目大约需要4到5秒,在此期间页面会冻结在主页上,然后转到统计信息页面。为什么装载机不显示?任何建议的解决方法?谢谢
部分代码:
function taskStat(){
$.mobile.loading('show',{theme:'d',textonly:false,html:""});
$.mobile.changePage("#taskStatistics",{transition: "none"});
statQueries= new Array();
offsetInitial=0;
db.transaction(taskStatsBefore, errorCB);
}
function taskStatsBefore(tx){
var query="select COUNT(*) AS MYCOUNT1 from TASKS_GVT";
tx.executeSql(query,[],taskStatsBeforeCb,errorCB);
}
...我采用db结果并动态创建下一页的html元素的其他几种方法 最后一个方法以此结尾:$ .mobile.loading(' hide');
答案 0 :(得分:1)
我建议添加超时为0或100毫秒的setTimeout。 如果没有超时,浏览器会等待,直到任务完成,然后刷新UI。
function taskStat(){
$.mobile.loading('show',{theme:'d',textonly:false,html:""});
$.mobile.changePage("#taskStatistics",{transition: "none"});
setTimeout(function(){
statQueries= new Array();
offsetInitial=0;
db.transaction(taskStatsBefore, errorCB);
},0);
}
function taskStatsBefore(tx){
var query="select COUNT(*) AS MYCOUNT1 from TASKS_GVT";
tx.executeSql(query,[],taskStatsBeforeCb,errorCB);
}