这是我在网页上使用的 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 时,数据都会存储在浏览器中的某个位置,并且不会清除。当我打开任务管理器时,我可以看到内存使用量在增长。
这是图像 axd 的屏幕截图..
我应该担心释放内存吗?或者一切都按预期进行..
最佳答案
为什么不只使用 url 重新加载图像,而不获取获取 url 的整个页面?如果您想阻止缓存,请通过服务器 header 将图像设置为不缓存,或使用 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);
这仍然会占用磁盘空间,因为每个损坏的图像都被视为不同的图像。如果它被缓存,您将使用陈旧的图像。但至少你不会再次加载整个页面。
关于javascript - jQuery $.get() 内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10310440/