gpt4 book ai didi

javascript - 在 Internet Explorer 中使用 JavaScript,如何在不刷新页面的情况下清除内存?

转载 作者:行者123 更新时间:2023-11-30 09:09:37 24 4
gpt4 key购买 nike

我有一个基于 AJAX 的网站,在客户端使用 JavaScript。站点上的某些操作会缓存来自浏览器中服务调用的大量结果集(即数百兆字节)。这些是一次性结果。它们将被短时间查看,然后需要从内存中清除。

我编写了一个小型测试站点,它在内存中加载一堆垃圾,然后调用 JavaScript 的 delete 方法。这在 Firefox 中非常有效(几乎立即返回内存)。 Internet Explorer 8(没试过 7)在刷新或关闭页面之前不会释放内存。

有谁知道如何使用 JavaScript/Ajax(无页面刷新)降低 IE 的内存使用量?

下面是我的示例客户端代码:

function load() {
var x = ['dfjasdlfkjsa;dflkjsad;flkjsadf;lj'];

for( var i = 0; i < 10000000; ++i ) {
x.push('asdfasfasfsfasdfkasjfslafkjslfjsalfjsaldfkjasl;dfkjsadfl;kjsdflskajflskfjslakfjaslfkjsaldfkjsaldfksdfjk');
}

alert('deleting'); // <--- memory usage around 500mb
delete x; // <--- immediate results in Firefox 3.5 (not IE8)
alert('done');
}

更新:将变量设置为“null”不会立即清除内存(因为这留给了垃圾收集器)。此外,在可能有多个引用的情况下,将变量设置为 null 只会获得一个引用。

最佳答案

IE(嗯,从技术上讲,JScript)有 an undocumented CollectGarbage method ,据说强制垃圾收集器立即运行。您可能想尝试一下,但根据我的经验,大多数时候 nulling 引用就足够了。

关于javascript - 在 Internet Explorer 中使用 JavaScript,如何在不刷新页面的情况下清除内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com