我制作了一个代码:
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。 随着每个下载的图像,浏览器的内存使这段代码会导致内存泄漏吗?
答案 0 :(得分:4)
Ajax请求是不必要的。只需将img src设置为新URL就足够了:
camImage.getImg = function() {
var src = 'http://localhost/picture.php?rand=' + (new Date()).valueOf();
$('#camera img:first').detach().attr('src', src).appendTo('#camera');
}
我使用detatch()
代替remove()
,因为这会保留原始DOM元素以供重复使用。
答案 1 :(得分:0)
更改功能并没有给出多少:
camImage.getImg = function() {
var src = 'http://localhost/picture.php?rand=' + (new Date()).valueOf();
$('#camera img:first').detach().attr('src', src).appendTo('#camera');
}
内存使用量仍在增加。这是由于javascript中的内存泄漏还是有其他原因?