jstree性能问题

mik*_*ike 9 javascript performance jquery jstree

我使用的是jsTree大约1500个节点,嵌套到最多4个级别(大多数只有1级深度),而我正在获取Internet Explorer的"此脚本运行缓慢"错误.我从一个html_data <li>由ASP.NET生成的直接结构开始.树根本不会完成加载.然后我试图xml_datajson_data,这是好一点,但最终出错了.我的最后一针是异步加载.这解决了初始加载问题,但是当我扩展其中一个较大的分支时,我现在得到了IE的错误.

更多细节:我正在使用该checkbox插件,我还需要能够搜索.不幸的是,在搜索时,用户可能只输入一个字符,因此我正在查看一些大量的搜索结果.

有没有人用这么大的数据集做过类似的事情?有关加快jsTree的任何建议吗?或者,我最好不要为我的GUI探索其他选项吗?

我意识到我没有发布任何代码,但欢迎任何一般技术/问题.

mik*_*ike 4

我还没有完全解决我的问题,但我做了一些改进,以便我认为它可能可用(我仍在测试)。我认为这对其他人可能有用:

  • 首先,我在 jQuery 对话框中使用 jsTree,但这似乎会损害性能。如果可能的话,不要混合使用大型 jsTree 和 Dialog。
  • 延迟加载绝对是处理大树的方法。我尝试过json_dataxml_data,它们都很容易实现。它们的表现似乎大致相同,但这只是基于基本观察。
  • 最后,我实现了穷人的寻呼。在我的服务器端 JSON 请求处理程序中,如果一个节点有超过 X 个子节点,我只需分成许多节点,每个节点都有这些子节点的一部分。例如,如果节点 X 有 1000 个子节点,我给 X 个子节点 X1、X2、X3、...、X10,其中 X1 有前 100 个子节点,X2 有接下来的 100 个子节点,依此类推。这对于某些人来说可能没有意义,因为您正在修改树结构,但我认为它对我有用。