我使用的jsTree
有大约1500个节点,嵌套到最多4个级别(大多数只有1级深度),而我正在使用Internet Explorer的“这个脚本运行缓慢” 错误。我从一个由ASP.NET生成的直接html_data
<li>
结构开始。树根本不会完成加载。然后我尝试了xml_data
和json_data
,这有点好,但最终出错了。我的最后一针是异步加载。这解决了初始加载问题,但是当我扩展其中一个较大的分支时,我现在得到了IE的错误。
更多细节:我正在使用checkbox
插件,我还需要能够搜索。不幸的是,在搜索时,用户可能只输入一个字符,所以我正在查看一些大量的搜索结果。
有没有人用这么大的数据集做过类似的事情?有关加快jsTree的任何建议吗?或者,我最好不要为我的GUI探索其他选项吗?
我意识到我没有发布任何代码,但欢迎任何一般技术/问题。
答案 0 :(得分:4)
我还没有完全解决我的问题,但我做了一些改进,以至于我认为它可能有用(我还在测试)。我认为这对其他人有用:
json_data
和xml_data
,它们都很容易实现。他们似乎表现相同,但这只是基于基本观察。答案 1 :(得分:3)
jsTree支持您的所有需求
答案 2 :(得分:3)
我自己对此表现感到有点失望。
听起来你需要尝试延迟加载:而不是一次性加载整个树,只需要根据需要加载。
也就是说,最初只加载树的主干(所以所有节点都是&#34;关闭&#34;),然后只有当用户点击打开它时才加载节点的子节点。
JsTree可以这样做,请参阅文档。
(你的意思是&#34; async loading&#34;?)
答案 3 :(得分:1)
jstree很糟糕 - 这是“刷新”,对于1000个子节点的添加速度缓慢10秒,或者在40个节点中加载10000个项目的树需要花费一分钟。经过几天的发展后,我已经告诉我的同事去看看slickgrid,因为每个人都会拒绝使用这么长时间做任何事情的页面。如果你没有正确地构造它会更快,例如1000个节点的3秒,但是箭头没有任何效果来关闭它。
这是替换ms treeview和ms imagelist的组合,它在3秒内在40个父节点上加载相同的10000个项目。