0
我正在做幾個需要時間的進程,所以我希望能夠顯示一個掩碼,我使用LoadMask。問題是我想運行的代碼似乎運行得太快,我認爲是阻止用戶界面顯示掩碼。該過程大約需要4秒鐘,因此我知道該掩碼未被同時啓用和禁用。必須使用DelayedTask,否則LoadMask不會顯示
我解決這個問題的方式是使用延遲任務,但它有點像代碼味道。
其他人做這個不同的方式嗎?
這裏是我有什麼
var myMask = new Ext.LoadMask(win, {});
myMask.show();
var task = new Ext.util.DelayedTask(function() {
....... // DO MY stuff and eventually do a myMask.hide()
task.delay(400);
它的偉大工程,但我想知道如果這是正確的方式去?
如果我刪除了延遲工具,那麼掩碼永遠不會顯示,但該過程確實有效。
在此先感謝
你可以爲你的任務添加代碼,包括myMask.hide()嗎? – forgivenson
你的4秒任務是什麼? REST方法調用? – Mattex83
我會對這些進程使用通用回調,全局計數器等於進程數。在回調中減少這個計數器。只要計數器爲0,就隱藏掩碼。在ExtJs 6中有這些目的的承諾,但正如我所看到的,這不是你的情況。 – yorlin