Будет ли замена контента с помощью jquery вызвать утечки памяти в IE8? - PullRequest
0 голосов
/ 05 марта 2010

У меня есть страница, где я загружаю таблицу информации, используя ajax. После загрузки таблицы я использую jquery для подключения некоторых обработчиков событий к строкам таблицы.

С этой страницы пользователь может обновить эту таблицу. Мой код jquery для обновления таблицы выглядит примерно так:

    $.post("/myurl", { id: 0}, 
        function (d) 
        { 
            $("tblWrapper").html(d);

            //Wire events
            $("table tr", $("tblWrapper")).click(function (e) { ... });
            ...etc
        }, "text");

Я заметил, что после этого несколько раз страница будет реагировать очень вяло, когда я пытаюсь выполнить прокрутку или анимацию в IE8.

Мой вопрос: что я делаю не так, что делает его все медленнее и медленнее? Могу ли я очистить старые html / обработчики событий перед заменой их новыми html и новыми обработчиками? Я думал, что двигатель JS может сделать это автоматически. Может быть, это происходит, и это просто медленно, чтобы очистить, это я не знаю.

Я заметил, что процессорное время на IExplorer достигает 50%.

Буду очень признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 05 марта 2010

Я не уверен, в этом ли проблема или нет, но вы продолжаете добавлять одни и те же строки снова и снова?Это может быть медленнее, потому что в таблице появляется все больше и больше строк.

Вы можете сделать что-то вроде $ ("table tr").

0 голосов
/ 05 марта 2010

Хорошее обсуждение и потенциальное решение проблемы здесь:

http://forum.jquery.com/topic/performance-issues-using-ajax-async

...