ie11内存泄漏的可能原因都有哪些?

问题描述 投票:0回答:1

我有一个SPA应用程序,在chrome中工作得很好,没有内存泄漏。

然而,IE11(Windows 10)每15分钟就会崩溃一次。

请不要告诉我IE11已经废弃了。我的公司支持IE11,我们的客户也在使用IE11。

我知道IFrames会导致IE11的内存泄漏。

我听说gif在IE11上也会导致内存泄漏,是真的吗?

根据您的经验。

  • 导致IE11内存泄漏的原因是什么?
  • 如何避免这些内存泄漏?
  • 有没有一个好的有效的方法,在不影响用户体验的情况下,每隔x分钟就能 "释放 "IE的内存泄漏?

我想在这里收集所有可能导致IE11内存泄漏的原因。

javascript memory-leaks internet-explorer-11
1个回答
2
投票
  1. 有哪些原因可能会导致IE11出现内存泄漏?

导致内存泄漏的原因有很多,在这里我们没有你的SPA的任何信息,所以我们很难说是什么原因导致其中的内存泄漏。

我建议你访问以下链接,可能会给你一个关于内存泄漏的可能原因的想法。

在Internet Explorer中的内存泄漏--重新审视

EdgeInternet Explorer内存泄漏

  1. 如何避免这些内存泄露?

我在第1点分享的链接也会给出避免泄漏的建议。

我试图参考微软官方文档中关于这个主题的内容。我发现那些文档中的链接已经坏了。

检测内存泄漏的工具

Internet Explorer的JavaScript内存泄漏检测器

  1. 有没有一个有效的好办法,在不影响用户体验的情况下,每隔x分钟就能 "释放 "IE上泄露的内存?

你可能需要刷新页面。在某些情况下,它可以工作。很明显,用户会被打断。

下面是一个例子。

var startTime, endTime;

function start() {
    startTime = new Date();
};

function end() {
    endTime = new Date();
    var timeDiff = endTime - startTime; //in ms
    // strip the ms
    timeDiff /= 1000;

    // get seconds 
    var seconds = Math.round(timeDiff);
    console.log(seconds + " seconds");

    if (seconds > 60)
        console.log("IE11 just froze. We need to refresh.");
}

start();

setInterval(function () {
    end();

    start();
}, 1000);

检测当IE11内置的内存泄漏,耗尽内存(1.5GB可回收池)。

© www.soinside.com 2019 - 2024. All rights reserved.