AJAX でデータをロードするオプションを指定して jsTree ( 1.0-rc3 ) を使用していますが、約 2000 の子ノードをロードする際に問題があります。サーバーは数秒以内に応答しますが、jsTree がブラウザ (chrome、FF) で結果をレンダリングするのに約 40 秒しかかかりません。それに加えて、FF は「jquery-1.7.2.min.js」からの応答がないという情報を返します。同じ量のデータが IE をフリーズさせます。データでオーバーロードされていますか? それとも何らかのバグですか?レンダリングの高速化に役立つ変更可能な要因はありますか?
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();
} );