我在使用jQuery动态创建层叠列表时遇到了性能问题。我通过JSON从服务器检索数据,然后在客户端使用以下方法呈现:
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个'li'项目。对于大约6,500个项目,数据在约1.5秒内从服务器检索出来,但在此之后建立和绘制列表需要约4.4秒的时间。到目前为止,这是我见过的最快速度,但11k + 项目是正常的。我还希望尽可能减少任何插件,因为此列表是可拖放的,并且相当动态,因此只有在悬停在'span'上后才会激活可拖放功能。
非常感谢您提供的任何指针!