2011-05-12 166 views
1

我有動態創建,與jQuery的分層列表的性能問題。我從服務器獲取通過JSON我的數據,然後用這使其客戶端:jQuery大型列表性能

for (var i = 0; i < myArray.length; i++){ 
    var subArr = myArray[i]; 
    var newElm = "<li id="+subArr.node_order+" value="+subArr.id+" class='list-item'><span>"+subArr.node_name+"</span><ul></ul></li>"; 
    var parent = $("li#"+subArr.parent_id+" ul"); 

    if(parent[0] != undefined){ 
     $(parent[0]).append(newElm); 
    } else{ 
     sortable.html("<ul>"+newElm+"</ul>"); 
    } 
} 

列表可高達15,000名單「禮」的項目。與約6500項目,數據從服務器檢索大約。 1.5秒,但在建立和繪製列表之後大約需要4.4秒。這是迄今爲止我所見過的最快的,但11k +物品是正常的。我也想要最小化任何插件,因爲這個列表是可拖拽的且非常動態的,所以拖拽/放置不會被激活,直到懸停在「範圍」上。

任何指針,非常感謝!

+1

你需要打破它。在用戶看不到15k條目一次!首先得到最重要的 - 呈現客戶。然後進行到下一個..直到一切完成。或者你將需要使用服務器端渲染,而不是像linq,xml轉換等東西。 – ppumkin 2011-05-12 12:49:04

+0

你可能想要把它分解成小部分,比如加載第一個500然後用ajax代碼從服務器獲得另一個500等等,但11k +很適合通過html和js處理(從我的觀點來看) – 2011-05-12 13:57:15

回答