JQuery setInterval с добавлением, увеличением объема памяти

Извините за мой плохой английский.

Я создал чат-систему с jQuery, и когда я пытаюсь заменить содержимое (например, пользователи онлайн-офлайн или сообщения, полученные), он отлично работает, но начинает становиться все медленнее, заставляя javascript занять все больше памяти.

$(document).ready(function(e) { data = '
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
'; $("body").empty().append(data); setInterval(function(){ $("body").empty().append(data); }, 1000); }); //document

Тестирование в Google Chrome (я не могу отправлять изображения здесь, потому что я новичок). Появляется в Timeline Memory все больше и больше, и узлы (зеленая линия), сложенные как лестницы, все время.

Я тестировал:

 document.getElementById("selector_inthiscasetheidofthebody").innerHTML=""; 

а потом

 document.getElementById("selector_inthiscasetheidofthebody").innerHTML=data; 
  • Я использовал метод setTimeout insted из setInterval

  • Я пробовал с помощью метода html() jQuery

Это изображение:

Любые другие идеи? Благодарю.

Я нашел его! Вы не можете избежать увеличения объема памяти и узлов, но вы можете контролировать их! Это код:

  $(document).ready(function(e) { // Possible data data = '
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
'; // Clean all that browsers changes, like putting styles inline, etc. Data and html appened, must be the same function clean(a){ if((a != 'undefined') && (a != null)){ a = a.replace(/(\ style=".*?")/gi,'').replace(/()/gi,'').replace(/(< \/tbody>)/gi,'').replace(/(\&amp\;)/gi,'&').replace(/(\&lt\;)/gi,'< ').replace(/(\&gt\;)/gi,'>').replace(/(\")/gi,"'"); return a.trim(); } }; // If they are different, then append data. So, you only append data in case information changes. function inyectar(a,b){ if(clean($(a).html()) != clean(b)){ $(a).empty().append(b); } } setInterval(function(){ inyectar("body",data); }, 1000); });