0


我将 gridx 与 dojo 1.8.3 库一起使用。
我的应用程序需要使用来自服务器的数据每秒刷新一个 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中网格刷新的正确方法是什么?

4

1 回答 1

1

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

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

于 2013-07-03T07:05:42.533 回答