我每隔几秒重新加载一个页面以从服务器获取更新,这个页面可以打开并且这可能永远发生 - 我猜,特别是因为这个浏览器在一个没有关闭的远程服务器上。
我这样做:
setTimeout(function () {
location.href = location.href; // forces a reload from the server
}, 1000*10*0.5);
我注意到IE6的内存占用一直在增加。该页面除了刷新和显示 html 外什么都不做。
为什么会这样?我怎样才能克服这个问题?我不想让 IE6 崩溃。
它的分辨率为 435,000K,已经过了大约 30 分钟。
谢谢大家
更新
抱歉大家 - 我确实有另一个函数,每次加载页面时都会运行:
function recreateTicks(tasks){
if(tasks!=''){
var myTicks = tasks.split(',');
var length = myTicks.length;
for(var i=0; i<length; i++){
var element = myTicks[i];
$('#'+element).attr('checked', true);
}
}
}
以上有什么问题吗?循环引用??
更新2
上面的函数是这样调用的:
<script type="text/javascript">
<!--PHP Generated-->
var tasks = 'ab_1, ab_2, ab_3';
</script>
<script type="text/javascript">
$(document).ready(function(){
recreateTicks(tasks);
});
</script>
最佳答案
您确定该页面没有执行任何操作吗?您没有(例如)附加到元素的一些事件处理程序吗?如果您在 unload
事件期间没有显式断开元素与其处理程序之间的连接,IE 会以内存泄漏而闻名。 (它不是通用的,处理程序必须有对某物的引用,但实现它非常容易——例如通过闭包。)Crockford wrote up有关 IE 内存泄漏的一些信息可能对您有用。
关于javascript - IE6 刷新时内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312800/