【发布时间】:2012-09-11 13:50:39
【问题描述】:
我尝试在 IE(6 和 8)中执行此代码,它可以正常工作,但 IE 在执行时会导致内存泄漏。
<html>
<head>
<script type="text/javascript" src="file_with_data.html" id=currentJsData></script>
<script type="text/javascript">
function currentJsDataRefresh()
{
document.getElementById('currentJsData').src="file_with_data.html";
}
setInterval(currentJsDataRefresh, 300);
</script>
</head>
<body>
</body>
</html>
其他文件 file_with_data.html 的摘录,其中包含 javascript 数据源作为全局变量:
var xMax;
var array1 = new Array();
var array2 = new Array();
var array3 = new Array();
array1[0] = 123;
array1[0] = 456;
...
我试图插入一个函数来删除所有变量,使它们等于 null,但内存泄漏仍然存在。你能解释一下IE中发生了什么吗?
【问题讨论】:
-
你为什么要每 300 毫秒加载一次 javascript 文件?你最好使用 AJAX 来检索 HTML 的内容并以这种方式处理它
-
file_with_data.html甚至是纯 JavaScript 吗?为什么不是.js? -
我认为您需要提供一个更具体的示例,因为您发布的代码中不应该有任何泄漏。可能是您的实际应用程序中的一些(反)模式阻止了某些对象被 GC 处理
标签: javascript internet-explorer memory-leaks