Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/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
Memory 刷新dojo网格时观察到内存泄漏_Memory_Dojo_Grid_Memory Leaks - Fatal编程技术网

Memory 刷新dojo网格时观察到内存泄漏

Memory 刷新dojo网格时观察到内存泄漏,memory,dojo,grid,memory-leaks,Memory,Dojo,Grid,Memory Leaks,我正在将gridx与dojo 1.8.3库一起使用。我的应用程序要求每秒使用来自服务器的数据刷新dojo网格。 下面是通过为每次刷新创建新存储来刷新网格的代码。 结果将在xhrPost回调中出现,并分配给新的网格存储。 上述函数每2秒调用一次,我可以看到chrome配置文件中的内存增加。 我曾尝试使用迭代的方式在存储中删除所有项目,然后添加新项目,但当存储更新时,网格会被锁定。 dojo中网格刷新的正确方法是什么?您所做的一切看起来都不简单,除非您正在刷新特定的项,否则设置存储是一种方法。g


我正在将gridx与dojo 1.8.3库一起使用。
我的应用程序要求每秒使用来自服务器的数据刷新dojo网格。
下面是通过为每次刷新创建新存储来刷新网格的代码。 结果将在xhrPost回调中出现,并分配给新的网格存储。

上述函数每2秒调用一次,我可以看到chrome配置文件中的内存增加。
我曾尝试使用迭代的方式在存储中删除所有项目,然后添加新项目,但当存储更新时,网格会被锁定。

dojo中网格刷新的正确方法是什么?

您所做的一切看起来都不简单,除非您正在刷新特定的项,否则设置存储是一种方法。gc最终应该删除旧的存储,但它会在感觉需要时执行此删除操作,在此之前,您将看到内存使用量的增加。在chrome中,你可以强制垃圾收集器,因此如果你这样做,并且你的内存被清除,那么一切都在按预期运行,你可能只是处理了太多太频繁的数据


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

基本上,当应用程序运行一天时,会出现停止脚本错误,有时浏览器会崩溃。听起来你想实现一个。
refreshGrid(){
   if(grid.store!=null)
     grid.store.close();
   var newGridStore = new dojo.data.ItemFileWriteStore({
                url:'',
                data:result,
                urlPreventCache: false
            });
   grid.setStore(newGridStore);
 }