Я занимаюсь разработкой сайта, который интенсивно использует jquery (UI) для обеспечения хорошего пользовательского опыта.По какой-то (глупой) причине части этого сайта показываются в iframe, а также есть кнопка для обновления iframe для получения последних данных с сервера.
Проблема заключается в том, что каждый раз при обновлении iframeиспользование памяти увеличивается, что через некоторое время приводит к серьезным проблемам с памятью (протестировано в IE8 и 9).Но это происходит, только если загружена библиотека jquery.Такое поведение лучше всего видно при использовании Drip / Sieve .Для лучшего понимания проблемы я удалил весь ненужный код, ведущий к двум файлам ниже.С каждой перезагрузкой использование памяти увеличивается примерно на 800 кб.(попробуйте http://jsbin.com/asamid/7, если хотите воспроизвести)
Как я могу запретить jquery пожирать мою память?Есть ли способ вручную выгрузить все jquery перед перезагрузкой?
index.htm: (см. http://jsbin.com/asamid/7/edit#html,live)
<html>
<head>
<title>Memory Leak - Parent</title>
<script type="text/javascript">
function reload() {
var frame = document.getElementById("testFrame");
frame.src = "frame.htm";
}
</script>
</head>
<body>
<a href="javascript:reload()" id="link">reload frame</a>
<iframe id="testFrame" src="frame.htm" />
</body>
</html>
frame.htm: (см. http://jsbin.com/ocuval/edit#html,live)
<html>
<head>
<title>Memory Leak - Frame</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<h2>Test Frame</h2>
<div>lorem ipsum</div><div>lorem ipsum</div><div>lorem ipsum</div><div>lorem ipsum</div><div>lorem ipsum</div><div>lorem ipsum</div>
</body>
</html>