У меня есть простая страница, состоящая из таблицы с тремя jQuery UI progressbars
и вызовом ajax.Утечки памяти в jQuery UI
Ajax вызывает пустой файл php и при успешном уничтожении и воссоздании моих progressbars.
Это кажется простым, но его запуск вызвал утечку памяти как в IE7
, так и в Chrome
(хотя Chrome обработал его гораздо более изящно).
Вот мой код:
<script type="text/javascript" src="jQuery/js/jquery-1.3.1.js"></script>
<script type="text/javascript" src="jQuery/js/plugins/jquery-ui-1.6rc4.min.js"></script>
<link rel="stylesheet" type="text/css" href="jQuery/css/ui.all.css" />
<script type="text/javascript">
$(function(){
timed();
});
function timed()
{
$.ajax({
url: "index.php",
success: function(msg){
$(".progressbar").progressbar("destroy").progressbar();
}
});
setTimeout("timed()",1000);
}
<table>
<tbody>
<tr>
<td>
<div class="progressbar"></div>
</td>
<td>
<div class="progressbar"></div>
</td>
<td>
<div class="progressbar"></div>
</td>
</tr>
</tbody>
Любые идеи для того, что я здесь отсутствует?
Я попытался добавить $("*").unbind();
перед строкой $(".progressbar")
в моей функции Успеха.
Ну, в моем приложении я обновляю таблицу данных каждые 5 секунд или около того с помощью Ajax. Таблица хранится в файле шаблона и с помощью jTemplates его заменяется после каждого обновления. Если вы не знаете лучше, уничтожение было всего лишь предосторожностью, прежде чем воссоздать бары. – 2009-02-05 21:25:21