gpt4 book ai didi

javascript - 网格负载掩码在网格过滤期间不起作用

转载 作者:行者123 更新时间:2023-12-03 06:57:40 25 4
gpt4 key购买 nike

我有一个包含数据的 extjs 网格,并且有一个按钮可以在商店中过滤某些类型的数据,这个过滤器还有一个负载掩码,应该在您按下按钮时和过滤器之后出现功能已完成,负载掩码应该消失,但在按下按钮之前它甚至不会显示。

这是按钮的代码

Ext.getCmp('overviewGrid').setLoading(true, this.el);
var allRecords = Ext.getCmp('overviewGrid').store.data;
Date.prototype.yyyymmdd = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]); // padding
};
var today = new Date();
var todays = today.yyyymmdd();
allRecords.each( function(record){
var store = Ext.getStore('LicenseAllStore');
store.filter({
filterFn: function (record) {
return (record.data.expiry_date <= todays);
}
});
});
var complete = Ext.getCmp('complete').setDisabled(true);
var incomplete = Ext.getCmp('incomplete').setDisabled(true);

Ext.getCmp('overviewGrid').setLoading(false, this.el);

我不知道为什么它不起作用,负载掩码不应该在之前显示,因为它是要执行的第一行。这样做的目的是向用户展示按下按钮时正在发生的事情。

感谢任何帮助。

最佳答案

正如您所知,JavaScript 在单个线程上运行。如果您在 SO 或您选择的搜索引擎上搜索 javascript single thread,就会有很多阅读 Material 。但是,您希望在过滤网格的同一函数(和线程)中显示加载掩码。那是行不通的。即使布局引擎有时间实际显示加载掩码,它也不会被动画化,因为线程将被过滤阻塞。一旦过滤完成,加载蒙版将再次隐藏。

如果您要进行服务器端过滤,您将看到动画加载掩码,因为布局引擎将有足够的时间来显示加载掩码,并且线程不会因过滤而阻塞。

Here是使用超时的解决方法的类似讨论。

关于javascript - 网格负载掩码在网格过滤期间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com