javascript - 使用 Object.freeze 和 object.unfreeze 减少具有大量表数据行的反应性页面中的内存膨胀
问题描述
我正在使用此处给出的方法来减少具有大量表/行数据的 Vue.js 应用程序的内存膨胀。我们看到内存膨胀,尤其是在 IE 中。前任。加载页面时,有几行的页面可以跳转〜100MB。
我发现如果我冻结进入我们存储行数据的列表/数组中的每个对象,膨胀会显着下降。100MB -> 60MB
对于我们在多个页面上有大量表数据的 Vue.js 应用程序,这是减少内存膨胀的最佳解决方案吗?我注意到,如果没有发生冻结,IE 可以在点击 2-3 页并进行 1-3 次搜索后将内存跳转到 ~1GB,每次搜索会产生 50 行数据!每次我们进行搜索时,我都会尝试清除数组,以便垃圾收集器和清理,但它确实没有太大影响。
此外,当我们在数据表行中有需要即时更改的列(例如日期或名称)时,我应该 1. 解冻对象 2. 进行更改 3. 再次冻结 4. 将其推回数组
使用类似这个包的东西
解决方案
这可能有点晚了,但您也可以在可变变量 ( let
) 中创建一个对象,并在需要重置它时将原始对象重新分配给该变量。
例如:
let obj = { objProp: "example" };
if (condition) {
Object.freeze(obj);
}
else {
obj = { objProp: "example" };
}
推荐阅读
- python - 在 Seaborn 图中获取 LaTeX 符号,而不会弄乱 Pandas 查询
- r - 为什么我的 for 循环不是每次都重新分配数据帧?
- c# - 同一类型的多个关系
- asp.net-core-webapi - 使用 PutAsync 将数据(带寄存器的模型)发送到 API,但仅在没有注册的情况下到达 Id
- vb6 - 如何在带有数据库的列表视图中使用 dtpicker 过滤日期
- javascript - onclick on image from .setAttribute('onclick', 'imgClick(this)') 如何获取图像索引
- python - Python 新手 - Django manage.py runserver 语法无效
- reactjs - 克服 Axios 请求缓存的策略?
- python - ValueError:传递值的形状为 (569, 30),索引暗示 (569, 31)
- python - NotImplementedError apache 梁 python