6
我正在爲Delicious書籤寫一個Chrome擴展。我的background.js文件在打開的瀏覽器中獲取書籤並創建jsTree構建適當的樹所需的對象。jsTree排序功能可笑地慢
如果我禁用jsTree的排序插件,當我單擊彈出窗口時,書籤立即出現。如果啓用排序功能,則點擊和顯示數據之間會有大約2秒的延遲。
我試着預先排序後臺腳本中的所有數據,並將其傳遞給彈出的預先排序的,但jsTree不尊重這個排序的數據。
我只有~90個標籤和~400個書籤。有一個配置選項,我可以用它來使這個更快?這是我的jsTree的樣子。
$('#jstree').jstree({
'close_all': -1,
'core': {
'animation': 0
},
'json_data': {
'async': true,
'data': data
},
'progressive_render': true,
'themes': {
'theme': 'classic',
'dots': false,
'icons': true
},
'sort': function (a, b) {
return this.get_text(a) > this.get_text(b) ? 1 : -1;
},
'types': {
'valid_children': [ 'folder' ],
'types': {
'folder': {
'valid_children': [ 'file' ],
'max_depth': 1
},
}
},
'plugins': [
'json_data',
'themes',
'sort',
'types',
]
});
只是一個評論:我不知道爲什麼你的速度很慢,但我正在運行帶有遞歸遍歷目錄的服務器端調用jstree - 至少300個文件,並返回html - 然後循環遍歷所有帶'$ .each'的html,它在不到一秒的時間內返回。我的觀點是這個問題可能在別處。 – user1167442 2013-09-09 23:59:42
除了添加其他選項之外,請嘗試禁用您可以選擇的每個選項,以查看它是否更快速。嘗試禁用排序功能,因爲您已經預先排序... – 2013-09-13 07:35:47
「this.get_text」在做什麼?也許這是昂貴的功能? – mitchfuku 2013-09-29 10:50:30