Утечка памяти JQuery - все браузеры
Я использую JQuery на моей веб-странице. Я вижу, что происходит много утечек памяти, и через некоторое время весь браузер останавливается. Я использовал сито и заметил, что есть постоянное увеличение нет. элементов DOM, каждый раз, когда нет. из 4
Я делаю что-то не так в том, как связаны события? Или потому, что я использую setTimeout для перерисовки моего приложения каждые X секунд?
Событие ассоциации:
$ ("Bir_Names.) Нажмите (showNames). Селектор $('. Bir_Names') устанавливает набор из примерно 300 элементов, каждый из которых вызывает функцию по щелчку.
setTimeout Каждые X минут Я удаляю каждый элемент HTML в приложении, перепривязываю свежие данные и связываю события. Я использую jquery remove() для удаления элементов. попробовал innerHTML = '' и empty() также.
Я вижу скачок в 30-40 МБ для каждого перерисовывания, а Sieve указывает, что ни один из удаленных узлов фактически не удален.
Любая помощь будет принята с благодарностью. Эта вещь сводит меня с ума.
Благодарю.
1 ответ
Вы не упоминаете, какой браузер, но некоторые поиски в Google, кажется, указывают на то, что это известная проблема с IE. Вот один из возможных обходных путей:
http://forum.jquery.com/topic/possible-memory-leak-in-remove-and-empty
Обратите внимание, что это относится к версии jQuery 1.2.x. Прежде чем что-либо делать, убедитесь, что вы используете последнюю версию 1.6.x, чтобы сначала увидеть, был ли дефект уже исправлен в jQuery.
[РЕДАКТИРОВАТЬ] ack... вы действительно заявляете свои браузеры... "все"... так что, возможно, не обращайте внимания на эту первую ссылку.