утечка памяти в AJAX - PullRequest
       12

утечка памяти в AJAX

1 голос
/ 28 января 2010

Я испытываю медленную утечку памяти в IE и Firefox при использовании комбинации ASP.NET AJAX и jQuery. Мой сценарий очень похож на описанный здесь: Предотвращение утечек памяти AJAX за исключением использования jquery и asp.net AJAX, а не прототипа: у меня есть веб-страница, отображающая данные в UpdatePanel, которая обновляется каждые 60 секунд с использованием таймер. в функции pageLoav javascript AJAX, которая вызывается при каждой «частичной обратной передаче», я перепривязываю события, потому что они теряются при частичной обратной передаче asp.net:

function pageLoad(sender, args) {
    $("#item").unbind();
    $("#item").hover(
        function() {
            // do something
        },
        function() {
            // do something
        });
}

так это вызывается каждые 60 секунд. Может ли это быть причиной утечки памяти?

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Сделайте это вместо:

$(function() { //.ready shortcut...
  $("#item").live("hover",
    function() {
        // do something
    },
    function() {
        // do something
    });
 });

Обратите внимание, что для этого требуется jQuery 1.4.1 , но он действует совершенно иначе с точки зрения памяти. Он прикрепляется к всему DOM, отслеживающему событие, чтобы всплыть , вместо того, чтобы прикреплять новое событие к каждому объекту, который вы вставляете каждые 60 секунд.

0 голосов
/ 28 января 2010

Да, это может быть.

Первое, что нужно попробовать, это взять две определенные там функции (если это возможно) и поместить их на более высокий уровень, чтобы они определялись только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...