2011-02-24 78 views
0

我使用json数据创建了JSTree。最初,一切都按预期工作。JSTree,创建节点和JavaScript超时

然而,当我使用 “创造”(CRRM插件)动态添加节点具有功能

的jQuery( “#mpTree”)。jstree( “创造”, parentNodeId, “最后”,{ “attr”:{ “rel”:“assetNew”,“id”: “newNodeId”},“data”:“dataVarHere”} ,function(){},true);

如果我超过了在IE中创建的30个后续节点,在Mozilla 60ish中,Javascript超时。 Chrome可以在不超时的情况下处理负载。

很显然,这远非理想。有没有其他的方法来创建一堆节点,并将它们添加到树中,而不会过度加载?

在此先感谢。

+0

“超时”你的意思是浏览器抱怨缓慢的脚本,对吧? – Pointy 2011-02-24 21:49:02

+0

是的,这是正确的。 – jorgemoya 2011-02-24 21:50:20

+0

如果我需要使用crrm插件单击它们以将其添加到根以及其他节点。我可以写什么来访问用户点击的节点的nodeID?我只需要在create built-in函数中使用parentNodeId的通用替代方法。这是我尝试过但成功的原因。 (“#tree”)。jstree(“create”,$(this.id),“inside”,{“data”:“new child节点“,”状态“:”打开“},假,真); \t \t THANKs advance。 – 2013-09-15 23:43:01

回答

1

这听起来像你正在尝试使用“创建”来加载整个树。我不认为它的意图(或优化)(我认为它主要是为现有树添加一个或两个节点)。

我认为通常的做法是使用其中一个数据插件(例如JS_DATA)最初加载您的树

您的数据来自哪里?数据库?如果它还不是HTML,XML或JSON,可以将它转换为其中的一种吗?

+0

我初始加载的树是使用Json数据,但是我们有一个函数来添加一些资源一个树的特定节点/节点(以查看数据管理的可视结构),并最终将关系保存在我们的数据库中。我当前的解决方案可能涉及操纵JSON数据,添加节点以及重新绘制树,但是我需要知道哪些节点是打开/关闭的并重新打开它们,听起来像是太麻烦了。 – jorgemoya 2011-02-28 19:19:56

+0

好的。你有没有看过使用cookies插件记住什么是开放的?http://www.jstree.com/documen tation/cookies – MGOwen 2011-03-01 02:39:24

+0

就像你说的那样,创建并不是处理列表的正确方法。我更改为JSON(必须重新构建数据),并且它会像魅力一样加载。 – jorgemoya 2011-09-01 19:06:05