IE8图像缓存还是错误?

los*_*man 5 jquery internet-explorer image

在我目前的项目中,我注意到IE使用了相当多的内存.花了一些时间调查我发现图像没有从内存中删除,但我的网站非常有用地使用图像.

最后,我创建了一个简单的测试,动态加载图像,然后使用jQuery清除它

我的测试js:

$(document).ready(function () {
    $('#appendImages').click(append);
    $('#removeImages').click(remove);
});

function append() {
    $.post("http://localhost/TestService/GetImages", { key: $('#key').val()}, function (data) {
        $.each(data.Data.items, function (i, v) {
            $('#imagesContainer').append('<img src="' + v.imageUrl + '" />');
        }); ;
    });
}

function remove() {
    $('#imagesContainer').empty();
}
Run Code Online (Sandbox Code Playgroud)

测试HTML:

<input id="key" type="text" value="jeans" >
<div id="reset">Reset</div>
<div id="repeatableReset">Repeatable Reset</div>
<div id="stop">Stop</div>
<br />
<br />
<br />
<br />
<div id="appendImages">append</div>
<div id="removeImages">remove</div>
<div id="imagesContainer"></div>
<html>

</html>
Run Code Online (Sandbox Code Playgroud)

在附加新图像时,IE内存正在增加.但删除所有加载的图像后,内存不会被清除.例如,在页面加载之后,IE进程使用20MB,在附加图像之后它使用35MB,清除后 - 30MB.

我已经使用sIEve工具找到任何leand但它显示没有泄漏.IE是否以某种方式缓存图像?IE中是否存在处理动态创建的图像元素的问题?

更新 在Firefox内存级别保持不变,但在IE中它正在增加.

Boj*_*les 1

这似乎是 IE 的问题。所有浏览器都会缓存内容,以便在再次需要时可以快速检索。如果足够聪明,IE 会在一段时间后或至少在关闭时清除缓存。

一种选择是使用无缓存元标记,但这会减慢所有页面的速度,因为每次页面加载时都必须重新加载图像。

至于实际使用情况,对于一个网站来说似乎相当大,但现在电脑至少有 2GB RAM(有些人仍然满意 1GB),这已经足够了。我认为您不会遇到内存问题。

附带说明一下,有时 FireFox 在经过长时间的 Web 开发后会占用大量内存。我认为这只是浏览器很聪明。

我认为浏览器应该更频繁地清除缓存 - 如果您访问大量网站,那么它会很快变得很大。