gpt4 book ai didi

jquery - jsTree 排序功能慢得离谱

转载 作者:行者123 更新时间:2023-12-03 22:52:36 24 4
gpt4 key购买 nike

我正在为 Delicious 书签编写 Chrome 扩展。我的 background.js 文件在浏览器打开时获取书签,并创建 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 使用原生数组 sort 方法,因此唯一可以改进的是对 get_text 的调用,但我怀疑是否可以更快。

如果您对数据进行了预排序 - 只需从您的 plugins 配置数组中删除排序插件即可。排序插件无法“知道”数据已经排序,只需删除该插件即可。

关于jquery - jsTree 排序功能慢得离谱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com