jQuery $ .get()内存使用情况

时间:2012-04-25 06:29:42

标签: javascript jquery asp.net

这是我在网页上的jQuery方法,它通过加载同一页面并替换图像每5秒刷新一次图像。

$(document).ready(function () {
    var refreshId = setInterval(function () {
        $.get('default.aspx', function (data) {
            var page = data;
            var image = $(page).find("img");
            var fecha = $(page).find("div #fecha");


            $("#Chart1").attr("src", image.attr("src"));
            $("#fecha").text(fecha.text());                    
        });
    }, 5000);
});

我看到每次加载img时,数据都存储在浏览器的某个地方并且它不会清除..当我打开任务管理器时,我可以看到内存使用量的增长......

和继承人图片的截图..

我应该担心释放内存吗?或者一切都按原样运作......

enter image description here

4 个答案:

答案 0 :(得分:3)

为什么不使用网址重新加载图片而不是获取获取网址的整个页面?如果要阻止缓存,请将图像设置为不通过服务器标头缓存,或使用cachebusting

var img = document.getElementById('Chart1');          //use plain JS since it's just an ID
var refreshId = setInterval(function () {
    var rand = "?"+(Math.random()*10000000000000000);  //cache busting method
    img.src = "path_to_image"+rand                     //set src using busted url
}, 5000);

这仍会占用磁盘空间,因为每个被破坏的图像被视为不同的图像。如果它被缓存,你将使用过时的图像。但至少你没有再次加载整个页面。

答案 1 :(得分:1)

发现浏览器只是缓存图像,但最终会被清理。

答案 2 :(得分:0)

使用$ post而不是$ get。 IE经常兑现GET请求数据。

答案 3 :(得分:0)

页面中只有一个img#Chart1,因此只有一个图像使用内存 其他人只会在浏览器的缓存中。

但我不认为default.aspx以html格式返回,
它应该在json中返回数据,如:

{
    imageUrl: "http://example.com/a.jpg",
    fetcha: "some text"
}