使用Javascript。
我声明了一个像这样的图像变量:
var myIMG = new Image();
我加载了100张这样的图片:
for (var test =0 ; test < 100; test++)
{
myIMG.src = null;
myIMG.src = {get new image from server somehow}
}
和此:
for (var test =0 ; test < 100; test++)
{
myIMG = new Image();
myIMG.src = {get new image from server somehow}
myIMG.src = null;
delete myIMG
}
(代码用于测试目的)
减少内存消耗的正确方法是什么?
由于
答案 0 :(得分:1)
您可能有兴趣知道JavaScript没有for
循环的本地范围。它的范围是基于功能。因此,您不应在函数中多次重新声明var myImg
。
回到你的代码,我建议你只声明一个new Image()
(即在循环之外),这应该更有效
var i, myImg = new Image();
for(i = 0; i < 100; i++) {
myImg.src = getNewSource();
}
delete
属性用于从对象中删除项目。例如:
var myObj = { a: 2, b: 3 };
delete myObj.a;
// myObj will now be { b: 3 }
但是,这不需要释放内存,而是引用对象中的项目。内存由JavaScript垃圾收集器声明(并且您无法在代码中触发)
希望这有帮助