我正在使用带有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秒调用一次,我可以看到镀铬曲线中的内存增加
我曾尝试使用迭代商店的方式来删除所有项目,然后添加新项目,但是当商店更新时,网格被锁定。
什么是dojo中网格刷新的正确方法?
答案 0 :(得分:1)
你正在做的事情看起来很粗略,除非你刷新特定的项目,否则设置商店是要走的路。旧的商店最终应该被gc删除,但只要感觉它就会删除,你会看到内存使用量增加直到那一点。在chrome中你可以强制使用垃圾收集器,所以如果你这样做并且你的内存清理完了,那么一切都按预期运行,你可能只是经常处理过多的数据。
让我们知道您所看到的性能下降(如果有),您的内存使用量是多少,以及您在商店中处理的数据量也可能很有用。