JQuery Ajax & Вопрос утечки памяти - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть веб-приложение, которое выполняет периодические операции сканирования и на определенной странице показывает состояние этих операций (и любых ранее выполненных).У меня есть запрос Ajax, который я отправляю с использованием jQuery, и он возвращает ту же страницу, на которой я сейчас нахожусь, измененную с учетом переменной времени (последнее обновление), чтобы включить только текущие и любые недавно выполненные проверки.По-видимому, после того, как оставить это открытым на ночь, что не является нормальным вариантом использования, в IE8 было возвращено «недостаточно памяти в строке 112» (ничего в строке 112 ни в чем).Я пытаюсь выяснить, что я делаю неправильно, и где это может быть утечка.

Мой вопрос: поскольку я перезагружаю ту же страницу, но только беру ее часть,«готовые» обработчики перезапускаются или как?По большей части таблица активных операций будет пустой, поэтому я не думаю, что я постоянно увеличиваю размер таблицы или что-то очевидное.

function updateActiveScanList()
 {
    $.ajax({  
        method: "POST",
        url: "ScanList.action",
        data: { updatedTime: $('#updatedTime').val() },
        success: function(data) { 


        // Update the active scan list.
        $('#activescans').html( $("#activescans", data) );

        // the recent scans table update requires more massaging, omitted for brevity,
        // since there's nothing else done there, this happens even if nothing else is 
        // ever inserted.
    });
}
$(document).ready(

  function(){
      setInterval( updateActiveScanList, 30000 );
  } 
);

1 Ответ

4 голосов
/ 18 ноября 2010

Вы можете использовать такой инструмент, как sIEve , чтобы обнаружить вещи, которые съедают вашу память.
Я предполагаю количество используемых DOM-узлов (они не должны быть частью документа-tree) будет увеличиваться с каждой манипуляцией.

Было бы лучше, если вы забудете jQuery для части DOM-манипуляции, методы, которые использует jQuery, известны как подверженные этой проблеме, в то время как они частично используют некоторые«грязные» вещи, такие как innerHTML.

Можете ли вы привести пример того, что вы хотели бы иметь внутри #activescans?

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