Это - своего рода продолжение вопроса, который я отправил на прошлой неделе: Простой Ajax jQuery называет память утечек в Internet Explorer
Я люблю синтаксис jQuery и все его хорошие функции, но я испытывал затруднения из-за страницы, которая автоматически обновляет ячейки таблицы через вызовы ajax, пропускающие память.
Таким образом, я создал две простых тестовых страницы для экспериментирования. Обе страницы делают вызов ajax каждую.1 секунду. После каждого успешного вызова ajax увеличен счетчик, и DOM обновляется. Остановки сценария после 1 000 циклов.
Каждый использует jQuery и для вызова ajax и обновить DOM. Другое использование API Yahoo для ajax и делает document.getElementById (...) .innerHTML для обновления DOM.
Версия jQuery пропускает память плохо. Работая в капле (на XP Домой с IE7), это запускается на уровне 9 МБ и заканчивается на уровне приблизительно 48 МБ с памятью, выращивающей линейно все время. Если я комментирую строку, которая обновляет DOM, она все еще заканчивается на уровне 32 МБ, предлагая, чтобы даже простые обновления DOM пропустили существенный объем памяти. Версия не-jQuery запускается и заканчивается на уровне приблизительно 9 МБ, независимо от того, обновляет ли она DOM.
У кого-либо есть хорошее объяснение того, что заставляет jQuery просачиваться так плохо? Я пропускаю что-то очевидное? Существует ли циклическая ссылка, о которой я не знаю? Или jQuery просто имеет некоторые серьезные проблемы памяти?
Вот источник для текучего (jQuery) версия:
Why is memory usage going up?
И вот нетекучая версия:
Memory usage is stable, right?