Extjs 4.2 loadMask 在调用函数之后显示,而不是之前

问题描述 投票:0回答:1

在 onGridPanelCellClick 事件中,我创建了一个 loadMask 以在调用 fillDisplayStore() 函数之前显示,但遮罩直到函数完成后才显示。我错过了什么?

var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
    myMask.show();

fillDisplayStore(store, loadedStore);

我尝试使用 chrome 调试器在函数调用之前放置一个断点,它会在之前显示掩码,但实时显示直到函数调用之后才显示。我需要 loadMask 的原因是因为调用的函数需要大约 10 秒才能完成。预先感谢您的帮助。

extjs loadmask
1个回答
0
投票

您可以利用 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); 
 })
© www.soinside.com 2019 - 2024. All rights reserved.