当用户点击扩展程序图标以触发弹出窗口时,Chrome似乎会在显示任何内容之前等待所有j执行。
我想在执行ajax抓取数据并显示之前显示“正在加载...”屏幕。
如何在执行js之前显示popup.html?
我尝试过window.onload和setTimeout。
更新
以下是我正在尝试的内容:
window.onload = function() {
setTimeout(function() {
var me = new MyApp();
me.getDbs("apps")
},5000);
}
getDbs一旦检索到dbs就会隐藏#loading。当我点击popup.html时,它会挂起一秒钟,我会看到dbs - 加载图标永远不会有机会被看到。
答案 0 :(得分:0)
setTimeout对我有用:
//display loading msg here
setTimeout(function(){
//heavy js here
//hide loading msg
}, 0);
修改强>
你的setTimeout函数不正确,它正在执行。您需要将方法包装到匿名函数中,以便不立即进行评估:
window.onload = function() {
var me = new MyApp();
setTimeout(function() {
me.getDbs("apps");
}, 1000);
}
(我会放弃window.onload
因为这里不需要imo)