我有一个网页使用 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/