我们正在使用Ext Js 5.1.1.451
我们有一个动态网格(分页),它将填充25行和大约230列(有时更多)。
以下是网格的特征:
它有5个静态列(最后两个有组合框和文本字段 - 作为编辑器添加)
它还有一个checkboxModel和cellediting插件。 (两者都在beforeselect和beforeedit听众中有规则来控制可编辑性)
从JSON响应中动态计算剩余的225列,如下所示。
最初我们只会获得115列,并根据标志我将决定是否可以使该列可编辑。 如果特定列可编辑,我将该列除以两个(例如:如果列名为cost,我将其命名为Base_cost(这将是一个只读字段)和Adjustable_cost(这将是一个可编辑字段))。 所有可编辑字段都是一个文本字段,由编辑器附加到该单元格。
当第一次加载网格时,它将加载商店,获得的数据将包含列标题详细信息和行数据。
所以,首先我将形成带有标题详细信息的列头,比如给它们编辑,宽度,名称,dataIndex等。
然后我将对行数据进行转换(基本上是为新形成的Base_cost和Adjustable_cost列提供单独的dataIndex。)
现在我将做一个grid.reconfigure(columnHeads);
在最后一步,我将转换的数据加载到同一个商店:store.setData(最终转换的数据);
所以我面临的问题是:
我的客户要求是仅使用IE(我们使用的是IE 11)。当我们加载网格时,就在我执行store.setData后,我的浏览器内存从260 MB变为1.1 GB,当我进入网格的下一页时,内存再次从1.1 GB跳到1.5 GB并保持不变。
首页网格加载需要40秒,而第二页需要>它需要2.5分钟和第3页> 3分钟,你明白了。主要问题是在网格完全加载之前,浏览器将进入冻结状态。
不幸的是,由于公司的政策,我不允许在这里发布我的任何代码,而且我也无法为这种情况制作小提琴。
我能做些什么来减少内存消耗???
P.S:这种行为只在IE中出现,在firefox中,进程非常快,并且在所有情况下内存消耗都低于500 MB。