我有一個父div與大約300 div的所有其中包含一個圖像和一些文本。我有一個數組,其中包含我需要重新排列div的所有信息,使用參考..jQuery順序元素,刪除,分離,克隆,追加內存泄漏
如果如果然後循環通過數組後,我已經命令它,然後移動元素accordinly我得到嚴重的內存泄漏高達100MB額外的時間我排序他們!
我已經嘗試了一些方法,仍然沒有成功
$.each(gameArray , function($idx, $itm) {
$("#elementid"+ $itm.split('|#|')[0]).appendTo($("#parent"));
});
另一種嘗試
$.each(gameArray , function($idx, $itm) {
var element = $("#elementid"+ $itm.split('|#|')[0]).detach();
element.appendTo($("#parent"));
element = null;
});
另一種嘗試
$.each(gameArray , function($idx, $itm) {
var element = $("#elementid"+ $itm.split('|#|')[0]).clone(true).remove();
element.appendTo($("#parent"));
element = null;
});
我讀去附着保持元素在DOM如此當你把它放回頁面時,它不會重新創建任何內容,也不會增加內存,但它確實如此nt似乎工作?!
有什麼我不知道?必須有一種方法來排序它們而不增加記憶力呢?
我發現的所有例子都使用了有序列表和大約10個列表元素,所以你不會注意到內存的增加!
你嘗試過移動而不的jQuery的DOM元素?也許不斷創建的jquery對象是一個問題?! – Yoshi 2012-01-27 15:42:22
還沒有!生病了,現在看看併發布我的發現! – rorypicko 2012-01-27 15:55:42
var parent =文件。的getElementById( 'game_panel'); \t \t \t \t。每$(koko.data( 'newGameArray'),函數($ IDX,$ ITM){ \t \t \t \t \t變種元素=的document.getElementById( 'gameidis' + $ itm.split(」 |#|')[0]); \t \t \t \t \t parent.appendChild(element.parentNode.removeChild(元件)); \t \t \t \t}); 使用標準的javascript導致相同的泄漏! – rorypicko 2012-01-27 16:23:56