首页 > 解决方案 > 浏览器会卸载加载的脚本吗?

问题描述

我正在调查是否永久加载一个脚本会增加浏览器选项卡的内存使用量。这对我来说似乎是来自 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 任务管理器

https://jsbin.com/votejebobu/edit?html,js,控制台,输出

标签: javascriptgoogle-chromememory-leaksv8

解决方案


推荐阅读