Javascript + IMG 标签 = 内存泄漏。有一个更好的方法吗?

标签 javascript jquery html ajax browser

我有一个网页使用 jquery 在人们查看事物时接收一些产品信息,然后显示最后看到的产品图像。这是一个 jquery AJAX 回调,看起来很像这样:

if(number_of_things_seen > 10) {
  $('#shots li:last-child').remove();
}

$('<li><img src="' + p.ProductImageSmall + '"></li>').prependTo('#shots');

但是,它似乎泄漏了相当多的内存。从视觉上看,它做了正确的事情,但足迹会无限增长。

Safari 的 DOM 检查器显示 DOM 是我期望的样子,但它似乎保留了对其显示的每个图像的引用(如 this screenshot 中所示,以防有人感兴趣)。

我已经添加了

$('#shots li:last-child img').remove();

删除声明没有明显影响。

是否需要一些魔法让浏览器释放其中的一些东西?

最佳答案

浏览器因内存泄漏而臭名昭著。听起来问题是在页面长时间运行时出现的。在内存耗尽之前刷新页面怎么样?

window.setTimeout("location.reload()",1000*60*60);//refresh in an hour

关于Javascript + IMG 标签 = 内存泄漏。有一个更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336348/

相关文章:

javascript - 在带有触摸屏的 Windows 上禁用屏幕调整大小

javascript - 如何使用 JavaScript 将 ChargeBee 链接添加到 HTML 元素?

javascript - 如何使用 jquery 计算选项卡的高度以将页脚向下推

javascript - 使用 Dropzone.js 在服务器上存储图像缩略图

javascript - CSS 是否接受小数形式的 'pixel'?

javascript - jQuery - 使用已弃用的toggle() 更新函数

javascript - DHTMLX 网格中缺少行

javascript - 获取带有延迟对象的异步请求的请求参数

AJAX 操作完成时,Javascript 回调不会触发

javascript - 本地存储 : Storing Objects vs Simple Data Types in different ways?