Dojo树模型 - 添加大量项目

时间:2010-03-14 00:02:27

标签: dojo tree

我试图通过在循环中调用newItem,通过ForestStoreModel向我的树添加大量项目(100+)。这似乎很慢并且锁定了浏览器。有什么方法可以做类似于grid的beginUpdate& endUpdate?我想基本上“关闭”我的树,批量添加100个项目,然后“打开”我的树。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

正如Stephen Chung所说,最好的方法是只添加用户在特定节点级别所需的节点;但有时你可能会在同一级别拥有大量节点,或者其他东西可能会受到阻碍。为了一次更新包含大量项目的树,我建议创建一个新商店/更新旧商店,然后你需要刷新树呈现。因此,一旦商店拥有格式正确的数组,请执行此操作(感谢Layke的hack How to update dojo tree data dynamically):

            // Completely delete every node from the dijit.Tree     
            myTree._itemNodesMap = {};
            myTree.rootNode.state = "UNCHECKED";
            myTree.model.root.children = null;

            // Destroy the widget
            myTree.rootNode.destroyRecursive();

            // Recreate the model, (with the model again)
            myTree.model.constructor(myTree.model);

            // Rebuild the tree
            myTree.postMixInProperties();
            myTree._load();