IIFE注入的代码会导致大量内存泄漏?

时间:2019-05-13 18:20:08

标签: javascript browser code-injection iife

我正在编写一个简单的chrome扩展程序,遇到了非常奇怪的问题。我有一个像这样注入的代码

element.src = chrome.runtime.getURL('inject.js');
document.head.appendChild(element);

Injects.js 本身:

(function() {
   //my code here
}());

代码本身并没有什么特别的,我使用类似于monkeyPatch的代码来修补一些原始页面函数并从中接收事件数据,而我的代码本身只有一个匿名函数setTimeout{},剩下的只是数据/ DOM操作。

现在,奇怪的是,如果我更改了将代码包装到IIFE example:

中的函数,
(function () {
    //my code
})();

我开始在5-7分钟内出现疯狂的内存泄漏,例如几Gb。

我不太熟悉JS及其生态系统-可能导致这种情况的原因?我想了解它,并在以后避免出现类似问题。让我知道是否需要更多背景信息。


编辑: 1。有人链接: Location of parenthesis for auto-executing anonymous JavaScript functions? 有趣的提法是:Does the former take up memory by leaving around a global, anonymous function?

2。这也很有趣: https://stackoverflow.com/a/3783287/8313379

这些都不回答我的问题,这是有效的-10分钟内仍有2Gb内存泄漏。

0 个答案:

没有答案