Утечка памяти JQuery - все браузеры - PullRequest
3 голосов
/ 25 июня 2011

Я использую jquery на своей веб-странице. Я вижу, что происходит много утечек памяти, и через некоторое время весь браузер останавливается. Я использовал сито и заметил, что есть постоянное увеличение нет. элементов DOM, каждый раз нет. из 4.

Я что-то не так делаю в связи с событиями? Или потому, что я использую setTimeout для перерисовки моего приложения каждые X секунд?

Событие ассоциации:

$ (»bir_Names.) Нажмите (showNames). Селектор $ ('. Bir_Names') передает набор из примерно 300 элементов, каждый из которых вызывает функцию по щелчку.

SetTimeout Каждые X минут я удаляю каждый элемент HTML в приложении, перепривязываю свежие данные и связываю события. Я использую jquery remove () для удаления элементов. пробовал innerHTML = '' и empty () также.

Я вижу скачок в 30-40 МБ для каждого перерисовки, а Sieve указывает, что ни один из удаленных узлов фактически не удален.

Любая помощь будет принята с благодарностью. Эта штука сводит меня с ума.

Спасибо.

1 Ответ

1 голос
/ 25 июня 2011

Вы не упоминаете, какой браузер, но некоторые поиски в Google, похоже, указывают на то, что это известная проблема с IE.Вот один из возможных обходных путей:

http://forum.jquery.com/topic/possible-memory-leak-in-remove-and-empty

Обратите внимание, что это относится к версии jQuery 1.2.x.Прежде чем что-то делать, убедитесь, что вы используете последнюю версию 1.6.x, чтобы сначала увидеть, был ли дефект уже исправлен в jQuery.

[РЕДАКТИРОВАТЬ] ack ... вы действительно заявляете свои браузеры ... 'all' ... так что, возможно, не обращайте внимания на эту первую ссылку.

...