在我的应用程序中,我有一个主页面,其中有一些面板(DIV)充满了AJAX调用。JQuery内存泄漏?
HTML<html>
<head>
<title>jQuery test</title>
<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="js/ago.js"></script>
</head>
<body>
<input type="button" value="Start 1" onclick="menuAnagReferenti()"/>
<div id="cmp-area">cmp-area</div>
</body>
</html>
ago.js在这个例子中
function menuAnagReferenti()
{
$.ajax({
url: "./html/fromServer.html",
cache: false,
async: false,
dataType: "html",
success: function(data) {
$('#cmp-area').empty();
$('#cmp-area').append(data);
}//success
});
}//end
menuAnagReferenti()是用于填充与内容CMP-区域面板从服务器获得的功能。
我注意到每次运行这段代码(我使用IE8进行测试)时,内存总是增长。长期以这种方式工作会导致整个应用程序的性能下降:经过一段时间浏览器变得无法响应!
经过多次测试,似乎问题出在从服务器获取的内容中。
此内容是一个HTML代码,大部分时间内都带有一些Javascript代码。
如果这个HTML里面没有javascript,内存的增长就不会发生!
如果HTML包含一些JavaScript(甚至很短),内存的增长仍然可能发生。
你能帮我解决问题出在哪里吗?我的代码中是否有错误产生这个问题?
感谢您的帮助!
新增2012年3月2日--------
感谢凯文: 在我的测试看来任何JavaScript产生的问题:更复杂的JavaScript代码和存储的增长更为迅速。
感谢Kory: 我不知道如何使用您的建议在我的情况...我使用JQuery 1.7.1
ajax加载页面上的JavaScript是什么? – 2012-03-01 15:26:54
已经在这里解答:http://stackoverflow.com/questions/1462649/jquery-memory-leak-with-dom-removal – 2012-03-01 15:50:51