Почему jQuery пропускает память так плохо?

Это - своего рода продолжение вопроса, который я отправил на прошлой неделе: Простой 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?

63
задан Community 23 May 2017 в 11:54
поделиться