Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer Extjs 5,IE中的动态网格内存泄漏?_Internet Explorer_Extjs - Fatal编程技术网

Internet explorer Extjs 5,IE中的动态网格内存泄漏?

Internet explorer Extjs 5,IE中的动态网格内存泄漏?,internet-explorer,extjs,Internet Explorer,Extjs,我们使用的是ExtJS5.1.1.451 我们有一个动态网格(分页),它将填充25行和大约230列(有时更多) 以下是网格的特征: 它有5个静态列(最后两个有组合框和文本字段-作为编辑器添加) 它还有一个checkboxModel和cellediting插件。(两者在beforeselect和beforeedit侦听器中都有控制可编辑性的规则) 其余225列根据JSON响应动态计算,如下所示 最初,我们将只得到arnd 115列,并根据一个标志,我将决定是否使该列可编辑。 如果特定列是可编辑的,

我们使用的是ExtJS5.1.1.451

我们有一个动态网格(分页),它将填充25行和大约230列(有时更多)

以下是网格的特征:

  • 它有5个静态列(最后两个有组合框和文本字段-作为编辑器添加)

  • 它还有一个checkboxModel和cellediting插件。(两者在beforeselect和beforeedit侦听器中都有控制可编辑性的规则)

  • 其余225列根据JSON响应动态计算,如下所示

    最初,我们将只得到arnd 115列,并根据一个标志,我将决定是否使该列可编辑。 如果特定列是可编辑的,我将把该列分成两部分(例如:如果列名是cost,我将其命名为Base_cost(这将是一个只读字段)和Adjustable_cost(这将是一个可编辑字段))。 所有可编辑字段都将是文本字段,由编辑器附加到该单元格

  • 当网格第一次加载时,它将加载存储,获得的数据将包含列标题详细信息和行数据

  • 因此,首先,我将使用标题详细信息形成columnhead,比如为它们提供编辑器、宽度、名称、数据索引等

  • 然后我将对行数据进行转换(基本上是为新形成的基本成本和可调整成本列提供单独的数据索引)

  • 现在我将做一个网格。重新配置(列头)

  • 在最后一步,我将把转换后的数据加载到同一个存储:store.setData(最终转换数据)

  • 这就是我面临的问题:

    我的客户要求只使用IE(我们使用的是IE 11)。当我们加载网格时,正好在我存储.setData之后,我的浏览器内存从260 MB增加到1.1 GB,当我转到网格上的下一页时,内存再次从1.1 GB增加到1.5 GB并保持不变

    第一页网格加载需要40秒,第二页需要>2.5分钟,第三页需要>3分钟,你明白了。主要问题是,在网格完全加载之前,浏览器将进入冻结状态

    不幸的是,由于我公司的政策,我不允许在这里发布我的任何代码,我也不能为这种情况创建fiddle

    我能做些什么来减少内存消耗


    注:这种行为只在IE中出现,在firefox中,这个过程非常快,在所有情况下内存消耗都低于500 MB。

    我对40列的网格有很大的问题,渲染需要30秒。你不觉得225列就好像150列太多了吗?@Alexander:我真正的问题不是它花费的时间,而是浏览器消耗的内存量。我知道创建多个存储可能会导致extjs应用程序内存泄漏,就我所知,即使在extjs6中也没有解决