论坛首页 Web前端技术论坛

jquery easyui性能很差,项目差点被害死

浏览 118229 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2012-04-11  
EXT 首次加载完后的运行速度绝对比 EasyUI 好。
最近的一个项目也是使用了EasyUI, 在js加载完成的情况下,性能上比Ext还是有差距,从最常用的DataGrid渲染就能对比出来。让我又想换回Ext了。
0 请登录后投票
   发表时间:2012-06-02  
其实这个东东我只用过datagrid了,作表格形式,至于效率,似乎跟extjs一个档次,别的功能没用到,效果倒是挺棒的。多关注效率和兼容性问题,easyui还是挺给力的,毕竟它让我们从繁重的JS代码中解放出来了,使开发速度加快。
0 请登录后投票
   发表时间:2012-06-02  
zyy_13579 写道
zhongxuchen 写道
云淡云舒 写道
angelhau 写道
云淡云舒 写道

第一,楼主不怎么会用easyui,EasyUI的Tree形式是[childrn[]]形式,但是它具有ajax自动请求功能,在一个,linkbutton只不过是给添加了写css样式,添加样式影响到你的性能,这个有点不靠谱。

onBeforeLoad : function(row, param) {
	if (row) {
//chilren没有数据时,url地址不改变
 $(this).tree('options').url = 'xxx';
	} else {
//children为空是,ajax请求
	$(this).tree('options').url = 'xxx';
									}
		}


这样的树是一个动态加载的树。配合缓存就是一个很好的树,楼主为啥就说他不好呢?至于什么兼容性问题,好多UI都存在,而EASYUI是基于Jquery的,我想Jquery在兼容性方面还做得很不错。

 

 

难道你这是在做异步tree? 如果是的话,那你就还是没有把tree的原理弄懂····

当节点有子节点的时候去请求子节点的数据,加载到树上,什么叫没有把tree的原理弄懂?,楼主的意思就是嫌使用children这种数据格式,每次加载都需要把整棵树加载进来,性能会非常低,使用上面的形式,加载的时候首先是加载根节点,点击根节点的时候再去请求下面的子节点。这样不好?EasyUI中的Demo提供了这个例子。比如说上面的代码,当row不为空,说明还有子节点,$(this).tree('options').url="xxx.Action?parentId="+row.id;请求Action获取节点下面的数据。你所说的Tree的原理是?愿闻其详。


真的服了你了,作为树应该考虑2点:

1、异步加载,点击一个节点取下一层

2、一次性加载,这个也是有应用场景的,不要只顾异步单层加载

考虑问题要完整,children这种模式一次性加载还得重新构造特定json数据格式,如果pid模式岂不更简单,你去看看jquery zTree2.6提供的模式,它有2种数据加载格式!

 

个人认为children这种数据格式(我不知道你有没有理解现在的children模式,如果多层树,json格式会children[ children[]],一层一层嵌套下去的!),而pid方式

数据是跟一般的表结构对应,开发起来更容易!

开发起来容易,实际上无形增加的是浏览器的性能开销,json格式无需做二次寻址,直接递归调用就行。和pid模式相对少了很多次循环啊。pid虽好,但是严重认为这个模式,大量数据的话ie6下应该是吃不消的。并且PID性能好不好,还要看整个数组的排序顺序决定

话说..现在easyui最新的1.2.6的版本,完全可以实现pid方式加载了。小数据量的时候这个前端性能基本可以忽略,但是大数据量如果不用异步,用pid方式绝对是划不来的。看过ztree源码的应该都会知道,ztree里面其实也是把扁平的pid方式的数据重新加工了一次,让其先变成树形数据结构之后,再遍历创建dom的。这无疑是增加多余的前端负担。只是你后台数据输出方便了。综合考虑之后,还children数据格式最优。

0 请登录后投票
   发表时间:2012-06-03  
节点多谁都受不了

如果一个节点下有几千个节点,比方说应收应付科目下有几千个应收应付子科目,用异步加载都难

extjs 4 我个人感觉在chrome 速度非常好,但他的tree grid 在超过千个节点时也会暂时没有响应,光几千个节点图形的加载就是个问题了,这时,可以使用其他界面展现方式来完成

总之,在js这块的,我的感觉就是不要挑战他的性能弱点,而是通过其他手段去回避它
0 请登录后投票
   发表时间:2012-06-03  
jjx 写道
节点多谁都受不了

如果一个节点下有几千个节点,比方说应收应付科目下有几千个应收应付子科目,用异步加载都难

extjs 4 我个人感觉在chrome 速度非常好,但他的tree grid 在超过千个节点时也会暂时没有响应,光几千个节点图形的加载就是个问题了,这时,可以使用其他界面展现方式来完成

总之,在js这块的,我的感觉就是不要挑战他的性能弱点,而是通过其他手段去回避它

 

一次性动态创建大量的dom,什么浏览器都会受不了吧。要是真这么大的数据量,还真是不建议用js处理···

0 请登录后投票
   发表时间:2012-06-05  
tree那个格式的数据有什么不合理的,想不通。
0 请登录后投票
   发表时间:2012-06-05  
hyj1254 写道
tree那个格式的数据有什么不合理的,想不通。

没有不合理```
0 请登录后投票
论坛首页 Web前端技术版

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