【问题标题】:Memory leak observed when dojo grid is refreshed刷新 dojo 网格时观察到内存泄漏
【发布时间】:2013-07-03 05:41:05
【问题描述】:


我正在使用带有 dojo 1.8.3 库的 gridx。
我的应用程序需要使用来自服务器的数据每秒刷新一个 dojo 网格。
以下是刷新网格的代码,为每次刷新创建一个新商店。 结果来自 xhrPost 回调并分配给新的网格存储。

refreshGrid(){
   if(grid.store!=null)
     grid.store.close();
   var newGridStore = new dojo.data.ItemFileWriteStore({
                url:'',
                data:result,
                urlPreventCache: false
            });
   grid.setStore(newGridStore);
 }

以上函数每 2 秒被调用一次,我可以看到 chrome 配置文件中的内存增加。
我曾尝试使用这种方式遍历商店以删除所有项目,然后添加新项目,但是当商店更新时,网格会被锁定。
dojo中网格刷新的正确方法是什么?

【问题讨论】:

标签: memory dojo grid memory-leaks


【解决方案1】:

您所做的任何事情都看起来很粗略,除非您刷新特定项目,否则设置商店是要走的路。旧的存储最终应该被 gc 删除,但它会在任何时候删除它,并且在此之前您会看到内存使用量的增加。在 chrome 中,你可以强制垃圾收集器,所以如果你这样做并且你的内存被清理了,那么一切都会按预期运行,你可能只是经常处理太多的数据。

让我们知道您看到什么样的性能下降(如果有)、您的内存使用量范围以及您在商店中处理的数据量也可能很有用。

【讨论】:

  • 基本上当应用程序运行一天时,它会给出停止脚本错误,有时浏览器会崩溃。
猜你喜欢
  • 2016-01-27
  • 1970-01-01
  • 2020-04-17
  • 1970-01-01
  • 2011-06-29
  • 2011-04-21
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多