Я охотился за ответ на этот вопрос, и хотя нашел связанные вопросы, я не мог найти точное соответствие для этого.jQuery load() метод утечка памяти?
У меня довольно большое приложение, которое должно загружать страницы в divs на другой странице с помощью метода jQuery.load(). Проблема заключается в том, что при повторной загрузке одной и той же страницы в один и тот же div я вижу, что память обозревателя существенно увеличивается (утечка памяти). Если я назову $ («*»). Unbind, я, конечно, не вижу утечки, но потом все было сброшено, так что это не исправление. В следующем примере кода воспроизводит эту проблему:
Test1.htm
<head>
<title></title>
<script type="text/javascript" language="javascript" src="Scripts/jquery-1.3.2.js"></script>
<script type="text/javascript" language="javascript">
<!--
var i = 0;
$(document).ready(function() {
$("#btn").click(
function() {
i++;
$("#Test1").load("Test2.htm", null, function() {
//$(document).trigger("test");
})
$("#count").html(i);
});
});
//-->
</script>
</head>
<body>
<img id="btn" src="someimage.png" />
<h3>We are loading Test2.htm into below div</h3>
<div>
Count loads =<span id="count">0</span>
</div>
<div id="Test1" style="border-style:solid">EMPTY</div>
</body>
Test2.htm = любой старый HTML страницы ..
При загрузке Test1.htm и нажмите кнопку mutliple раз, вы «Я заметила, что память браузера неуклонно растет. Я считаю, что проблема заключается в том, что загруженные элементы js и DOM никогда не устанавливаются для сбора мусора. В моей системе реального мира я попытался удалить (elem.remove() или .empty()) загруженные элементы, но это действительно не устраняет проблему. У меня также есть много js-файлов, загруженных с помощью «src», который я заменил на $ .getScript, похоже, это немного улучшилось. Все эти обходные решения были рассмотрены, и я хотел найти реальное решение этой проблемы. Есть идеи?
У вас есть код JS в Test2.htm? Вы ссылаетесь на объекты, загруженные 'load()' в любую другую функцию? Если вы будете загружать данные с помощью простого '$ .ajax()' call is memory leak остается? – NilColor