论坛首页 Web前端技术论坛

jQuery插件表格树GridTree--2011新年版本(优化懒加载性能)

浏览 14884 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-01-24   最后修改:2011-01-26
表格树是用来展示多层次的表格的工具,在实际项目中有使用.并且此前已经发布了不少的版本,这次是最新的一版,比较稳定了.公开源码,主要使用jquery和普通JavaScript实现.

此前的表格树的详细配置说明

最近修改了此前表格树,根据需求新加了功能以及做了一些相关修改:
1.添加了动态刷新表格树的方法    
    
2.添加了动态添加子节点的方法 
  
3.支持无限层次的节点分页(lazyPage : true)

4.支持非顶层节点的缓冲显示(lazyMorePage:true )

5.修改此前版本的一些bug,例如删除了analyzeAtServer属性(定义了也没有用)。

下面罗列出新的属性和API方法:
1.lazyPageSize:进行懒加载分页以及懒加载缓存显示的每页页数,默认为10

2.lazyPage:设置为true表示使用懒加载分页,即在除了第一层进行默认的表格树分页之外,在子树的层次也进行分页,具体请看demo中的“懒加载树示例2(lazyPage:true)”链接

3.lazyMorePage:设置为true表示开启使用懒加载的缓存模式,即在对子树层次显示的时候,逐步显示节点,例如子树一层有1000个节点,设置了lazyPageSize=50的话,第一次显示50个节点,点击节点前面的图标再显示画面的50个节点(全部显示完请点20下,呵呵),具体请看demo中的“懒加载树示例3(lazyMorePage:true)”链接

注意:lazyPage和lazyMorePage不可以同时设置为true。
注意:设置了这两种懒加载模式之后,和普通的懒加载处理类似,也是需要做两个java方法返回json串,即dataUrl和lazyLoadUrl中的链接。

4.myTree.reload():进行表格树的重新加载,此前方式只可以通过链接的刷新实现,通过这个新方法可以局部刷新表格树

5.myTree.appendChild('父节点id','子串json串'):对指定的节点添加孩子节点

6.删除analyzeAtServer属性:如果配置了该属性也不会有效果,主要目的是简化了后台传递json串的格式。通过运行demo工程,可以看到后面实时打印出来的json串。
  修改了在chrom下面的一个bug:懒加载模式下面的分页出现问题。

关于性能:
    这次修改,主要就是做的对懒加载性能方面的改善,在实际项目中发现第一层进行了分页处理之后,但是子节点还有上千条节点,结果依然出现严重的js性能问题,于是想到了继续进行分页的点子。



欢迎提出建议!
  • 大小: 28.3 KB
   发表时间:2011-01-25  
不好意思,问一下,这个树菜单能不能一级一级往开展了?
0 请登录后投票
   发表时间:2011-01-25  
呵呵 当然可以,不然叫树么.
0 请登录后投票
   发表时间:2011-01-25  
我现在问题是,第一级点 + 号,把下面的全展开了。
是设置哪个属性了?我没有找见
0 请登录后投票
   发表时间:2011-01-25  
还有每一层能不能 设置一个统一的颜色,如 第一级 红色,第二级 白色 每三级 蓝色,这个能不能设置一下了。
0 请登录后投票
   发表时间:2011-01-25  
jiayan 写道
我现在问题是,第一级点 + 号,把下面的全展开了。
是设置哪个属性了?我没有找见

点击加号,这个不用设置属性!因为是我的控件给你做好的,就类似于你用其他的树控件一样,展开节点不用你设置什么东西.

你看一下我的文件里面的详细配置说明.组装成树形是看最主要的两个属性idColumn和parentColumn属性.

详细配置说明地址:http://renjie120.iteye.com/admin/blogs/631822
0 请登录后投票
   发表时间:2011-01-25  
jiayan 写道
还有每一层能不能 设置一个统一的颜色,如 第一级 红色,第二级 白色 每三级 蓝色,这个能不能设置一下了。

这个需求比较具体了,不可能考虑这么多,不过你可以自己去做.

根据我在tr里面加了一个属性_node_path表示当前所在的层级,你根据这个自己写js. 提供了3个回调函数onPagingSuccess,
onLazyLoadSuccess,onSuccess...
0 请登录后投票
   发表时间:2011-01-25  
renjie120 写道
jiayan 写道
我现在问题是,第一级点 + 号,把下面的全展开了。
是设置哪个属性了?我没有找见

点击加号,这个不用设置属性!因为是我的控件给你做好的,就类似于你用其他的树控件一样,展开节点不用你设置什么东西.

你看一下我的文件里面的详细配置说明.组装成树形是看最主要的两个属性idColumn和parentColumn属性.

详细配置说明地址:http://renjie120.iteye.com/admin/blogs/631822

不好意思,好像是我没有把问题说清楚。我再重新描述一下

我的树菜单有四层,点击第一层的 + 号,把 二、三、四层全给展开了,感觉有点乱,我现在的要求是,点击第一层的+,只展开 第二层,点 第二层的+ ,只展开 第三层,依次类推。说的不知是否清楚。
0 请登录后投票
   发表时间:2011-01-25  
jiayan 写道
renjie120 写道
jiayan 写道
我现在问题是,第一级点 + 号,把下面的全展开了。
是设置哪个属性了?我没有找见

点击加号,这个不用设置属性!因为是我的控件给你做好的,就类似于你用其他的树控件一样,展开节点不用你设置什么东西.

你看一下我的文件里面的详细配置说明.组装成树形是看最主要的两个属性idColumn和parentColumn属性.

详细配置说明地址:http://renjie120.iteye.com/admin/blogs/631822

不好意思,好像是我没有把问题说清楚。我再重新描述一下

我的树菜单有四层,点击第一层的 + 号,把 二、三、四层全给展开了,感觉有点乱,我现在的要求是,点击第一层的+,只展开 第二层,点 第二层的+ ,只展开 第三层,依次类推。说的不知是否清楚。

可以实现.
现在的懒加载就是你说的这种方式,设置lazy:true!
你看我的demo例子就知道了.
0 请登录后投票
   发表时间:2011-01-26  
是个不错的东西来着,谢谢分享呀
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics