Утечка памяти 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... вы действительно заявляете свои браузеры... "все"... так что, возможно, не обращайте внимания на эту первую ссылку.

Другие вопросы по тегам