在 onGridPanelCellClick 事件中,我创建了一个 loadMask 以在调用 fillDisplayStore() 函数之前显示,但遮罩直到函数完成后才显示。我错过了什么?
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
myMask.show();
fillDisplayStore(store, loadedStore);
我尝试使用 chrome 调试器在函数调用之前放置一个断点,它会在之前显示掩码,但实时显示直到函数调用之后才显示。我需要 loadMask 的原因是因为调用的函数需要大约 10 秒才能完成。预先感谢您的帮助。
您可以利用 setTimeout 函数来允许在继续执行您的函数之前渲染加载掩码。例如,
grid.on('cellclick', function () {
var myMask = new Ext.LoadMask(Ext.getBody(), {
msg: "Please wait..."
});
myMask.show();
setTimeout(function () {
// your function here
console.log('Data loading for record: ' + record.get('name'));
myMask.hide();
}, 2000);
})