Sto usando jsTree (1.0-rc3) con l'opzione di caricare i dati da parte di AJAX e ho un problema con il caricamento di circa 2000 nodi childs da esso. Mentre il server risponde in pochi secondi, richiede jsTree circa ~ 40 secondi solo per visualizzare i risultati nel browser (chrome, FF). In aggiunta a ciò, FF restituisce informazioni sulla mancata risposta da "jquery-1.7.2.min.js". La stessa quantità di dati blocca IE. È sovraccarico di dati? O è una specie di bug? Ci sono dei fattori modificabili, che possono aiutarmi con il rendering più veloce?jsTree - ottimizzazione del rendering | rendering molto lungo con 2000 nodi
jQuery("#dependency-tree").jstree(
{
'plugins':['themes', 'json_data', 'ui', 'core', 'types', 'sort'],
"json_data":{
"progressive_render": true,
"data":initData,
cache:false,
"ajax":{
"url":function (node)
{
return appContext + 'GetUnitsNode/'
+ node.attr('id');
},
dataType:"text",
"success":function (data)
{
if (data == "none")
{
return false;
}
return jQuery.parseJSON(data);
}
}
},
"ui":{
'select_limit':1
},
"core":{
'animation':0,
'html_titles':true
},
"themes":{
"theme":"rules",
"dots":true,
"icons":true
},
"types":{
"types":{
"default":{
"icon":{
"image":appContext + "/img/orange.png"
}
}
}
},
"sort":function (a, b)
{
return this.get_text(a).toUpperCase() > this.get_text(b).toUpperCase() ? 1 : -1;
}
}).bind("select_node.jstree", function (event, data)
{
submitedNodeId = data.rslt.obj.attr('id');
submitedNodeTypeId = data.rslt.obj.attr("typeId");
submitedNodeLast = data.inst.is_leaf(data.rslt.obj);
g_node_text = jQuery(data.rslt.obj).children().eq(1).html();
});
sicuramente la demo di jstree se lenta, anche con 3/4 nodi ... che posso' Immagina la tua esperienza con 2K ... BTW farlo in HTML5 dovrebbe essere fattibile. Forse con la semplice commutazione di classe (piegata/spiegata) e la manipolazione del DOM come ultima risorsa – CapelliC