论坛首页 Web前端技术论坛

ExtJS中GridPanel一次性加载500条以上数据(不分页),性能超级差,有时导致浏览器卡死!

浏览 12164 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-04  
http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/infinite-scroll.html  这个例子一旦滚动的速度快一点的时候~就开始load了~~有木有比较好的办法?
0 请登录后投票
   发表时间:2011-05-04  
建议看看Ext4.0 grid例子,是分页的但没有分页条,加载过的记录就不会调后台了
0 请登录后投票
   发表时间:2011-05-05  
tfwin2 写道
呵呵,遇到过这种需求,我们现在用的DHMTLXGRID,用SMART RENDER功能,加载5万条以内的数据都可以内置支持滚动读取,
我想DHTMLX做到的,EXT应该也有类似的,楼上的链接我看到了,感觉滚动条有些卡,没有DHTMLXGRID流畅,可能毕竟EXT库庞大复杂了些,内部判断多,DHMLXGRID可以单独使用的控件,不过非专业版没有分页功能,如果需要,要自己拓展。


赞成滚动条读取数据,这应该没有多大问题,在google或者是qq空间等地都用到的技术,现在已经慢慢的变通用化。
0 请登录后投票
   发表时间:2011-05-05  
刚好针对这个问题研究过。
其实如果记录数在200-300之间基本还是没问题的,大于300的话浏览器可能会出现假死现象。对于不分页的情况,就如lz所说,gridview将store里面的所有记录都refresh完之后浏览器才正常响应,主要的渲染时间就在这里。我测试了两种方式希望解决这个问题。
1、使用livegrid,这也符合一般的使用习惯。也是我强烈推荐公司使用的,但是公司的产品是c/s结构,客户已经很习惯不分页,而且一次加载,对于每次拖动加载也是不习惯。
2、使用拆包查记录动态询,比如总记录数是1000的情况下,分10次查询,以后查询的加入store中,这也出现了,只要在load完上一次的记录后注册一次查询就行了,根据多次测试的结果,总的时间上会比一次查询稍慢。更加无法忍受的是浏览器在所有请求完成之前会处于假死状态。
我看了4.0的大数据量表格,其实跟livegrid的原理应该是一样的。
上面同学说的bufferview我再去看一下。
结论就是如果客户真的要求不分页,那就直接写jsp好了。其实有这样需求的页面不会多。
0 请登录后投票
   发表时间:2011-05-05  
我也遇到这个问题。用buffergrid加载的时候,数据量一多,滚动条滚动刷新grid时速度太慢了
0 请登录后投票
   发表时间:2011-05-05  
我用TABLE一次加载几百行浏览器也卡死啊,客户端电脑,浏览器性能,这些也都有关系吧,要是能不这么做更好了,页面大了就卡。
0 请登录后投票
   发表时间:2011-05-05  
遇到过同样的情况,纠结中。grid显示不只和行后关系和列的多少也有关系。
m*n的关系。
0 请登录后投票
   发表时间:2011-05-05  
主要是html dom生成的太多了.
4.x版本中grid得到了极大的优化,生成的dom比3.x简洁很多,性能上提升很大
0 请登录后投票
论坛首页 Web前端技术版

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