【发布时间】:2014-09-23 23:40:42
【问题描述】:
我编写的一些代码在一系列广告中循环时遇到了问题。 渲染函数在一定间隔内被调用(可配置,但设置为每 50 毫秒以帮助调试)。问题是,当这个函数运行太多次时,控制台会崩溃。在某些手机上,设备会完全耗尽内存并自行重启,我认为与此功能有关(取出控制台不会崩溃):
var render = function(){
if(ads.length < 1)
return;
if(!ads[adIndex]){
adIndex = 0;
}
s = ads[adIndex].src;
w = ads[adIndex].width;
$(adContainer).html("<p>ADVERTISEMENT</p><img src = '" + s + "' width = '" + w + "'/>");
adIndex++;
};
我认为这可能是内存泄漏,但无论如何我都不是内存专家。我可以做些什么来优化此功能并防止内存问题?
编辑:我这样调用代码:
setInterval(function(){
render();
}, 50);
ads 数组只是 javascript Image() 对象的数组。
【问题讨论】:
-
没有足够的代码来说明。怎么叫渲染?
-
setInterval(function(){ render(); }, 50);无法真正发布所有代码,这是一个我已经工作了几个月的非常复杂的网站。
-
您可能想要显示 ads 对象。并用代码更新您的问题,不要粘贴为评论
-
setInterval(render, 50);会给你同样的结果,没有无用的包装功能。 -
我认为崩溃的原因不在这里。是什么让你认为它在这里?
标签: javascript jquery performance memory garbage