javascript - 浏览器会卸载加载的脚本吗?
问题描述
我正在调查是否永久加载一个脚本会增加浏览器选项卡的内存使用量。这对我来说似乎是来自 Chrome 的内存泄漏,除非它是这样工作的。该脚本只是永远加载这个加密库,每个请求都是顺序的,一旦加载一个,它就会删除它并加载另一个。
let count = 0;
function load(cb) {
var url = `https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/aes.js?bust=${count}`;
count++;
let script = document.createElement('script');
script.id = count + 'script';
script.onload = cb;
script.src = url;
document.body.appendChild(script);
}
function doit() {
load(() => {
setTimeout(()=> {
let script = document.getElementById( count + 'script');
document.body.removeChild(script);
doit();
}, 100);
});
}
doit();
在加载脚本 10,000 次后,它从 40mb 变为 400mb ish,为了衡量这一点,我正在使用 Chrome 任务管理器
解决方案
推荐阅读
- postgresql - AWS Elastic Beanstalk 日志未排序
- azure-devops - 将 Azure Devops 提交链接到 Rally 用户故事
- python - 正确重新采样开始和结束员工假期表
- reactjs - Redux connect 不会将`dispatch`传递给连接的组件
- hibernate - 自动触发事件日期到当前日期之后的过去事件日期大于 Hibernate 中的事件日期
- postgresql - Postgresql SELECT CURRENT_TIMESTAMP 不显示时区
- java - Spring boot 无法连接到部署在另一个 kubernetes pod 上的 postgre 数据库
- python - 在一个元素的数组上调用 list() 方法会引发 TypeError:对 0-d 数组进行迭代
- python - 创建队列类
- android-room - 如何获取房间数据库中具有一对一关系的另一个表的行