呵呵,是我提的,就是把生成树的document.write那些javascript代码全部改成 StringBuffer sb,用append()来做串加法,速度比String的串加法快上千倍。最后送到客户端做一次document.write就行了。速度还是挺块的,感觉不到延迟。最后生成的代码有几百K,所以我只生成了一次,就放在服务器端,同时记录下生成的时间当版本号。客户端第一次显示前要下载全部的数据,在框架里保存起来,以后每次显示前先下载服务器上的版本号和本地版本号相比较,如果版本号相同就不再次下载了。服务器在跟新了资料后生成新的数据,同时更新版本号。其实用net_lover的xml树可以实现自动延迟下载,浏览器还可以帮我们自动缓存,技术上应该要好做一些,延迟也不大。

解决方案 »

  1.   

    利用XML动态的将数据加载到树里,单纯的javascript效率肯定高不了。
      

  2.   

    我正在研究net_lover的例子,不是很明白.....我做的主要是对树的操作,包括增加删除叶子什么的,类似于xml编辑器
    现在最让我头痛的是,整个树其实是一个网状结构,关系极其复杂,以至于我需要经常的遍历整个树,所以现在想转到服务器上去
      

  3.   

    利用XML一层层的添树结点进去,避免使用递归算法,这样效率高,且不限层数。
      

  4.   

    就是说XML数据仅包含一层结点的数据,打开一次结点就取一次这样的数据。
      

  5.   

    to emu:我的树叶有一个属性是根据该树叶在树中的位置关系得到的
           因为是网状结构,展开成树后,必定有重复的叶子,所以我要想办法保持相同叶子的同步,而且一个xml传过来后,不知道在里边有多少个重复的叶子如A出现......我向树上增加叶子时,还要check有没有环状关系的出现
    我晕了好几天了:(to net_lover:我也想过用用分段的方式,可是拆开后,网状结构就不完整,我的树信息也就无法完全表示了