内存泄漏-定期图像下载
我编写了一个代码:
var camImage = camImage || {};
camImage.getImg = function() {
var currDate = new Date();
var image = null;
var link = 'http://localhost/picture.php?rand='+currDate.valueOf();
$.ajax({
url: link,
success: function(){
$('#camera img').eq(0).remove();
image = $('<img />').attr('src', link);
$('#camera').append(image);
link = null;
image = null;
currDate = null;
}
});
};
$(document).ready(function(){
setInterval(camImage.getImg, 1000);
});
这个简单的代码定期获取新图像并将其添加到 DOM 中。 随着每个下载的图像浏览器内存使用量的增加。这段代码会导致内存泄漏吗?
I make a code :
var camImage = camImage || {};
camImage.getImg = function() {
var currDate = new Date();
var image = null;
var link = 'http://localhost/picture.php?rand='+currDate.valueOf();
$.ajax({
url: link,
success: function(){
$('#camera img').eq(0).remove();
image = $('<img />').attr('src', link);
$('#camera').append(image);
link = null;
image = null;
currDate = null;
}
});
};
$(document).ready(function(){
setInterval(camImage.getImg, 1000);
});
This simple code gets periodically new image and adding it to the DOM.
With each downloaded image browser memory usage increases. Is this code causes a memory leak?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Ajax 请求是不必要的。只需将 img src 设置为新的 URL 就足够了:
我使用
detatch()
而不是remove()
,因为这样可以保留原始 DOM 元素以供重复使用。The Ajax request is unnecessary. Just setting the img src to a new URL will suffice:
I use
detatch()
instead ofremove()
since this keeps the original DOM element around for re-use.更改函数并没有带来多大影响:
内存使用量仍在增加。这是由于 JavaScript 中的内存泄漏还是还有其他原因?
Changing the function did not give much:
Memory usage still increasing. This is due to memory leak in javascript or is there another reason?