easyui datagrid 列数在100左右,加载数据很慢,请问,如何优化?

w290601645 2015-05-27 05:01:01

/*
列数是动态加载,当列数量超过50,甚至100列 就很慢了,在chrome浏览器大概3ms,IE更不敢想象。
请问有人优化过这个问题吗?(已排除是服务端加载数据慢的原因,确定是datagrid的问题)
*/
var columns = [{ field: "ID", title: "ID", width: 120 }];
for (var idx = 0, len = data.length; idx < len; idx++) {
var item = data[idx] || null;
if (item) {
columns.push({ field: item.FieldNameEn, title: item.FieldNameCn });
}
}

$("#dgResidentProject").datagrid({
url: "/api/data/ResidentProject/GetProjects?page=1&rows=10",
width: 'auto',
rownumbers: true,
checkOnSelect: false,
ctrlSelect: false,
loadMsg:"数据加载中,请稍后...",
singleSelect: true,
pagination: true,
queryParams: { },
pageSize: 10,//每页显示的记录条数,默认为10
pageList: [10, 15, 20],//可以设置每页记录条数的列表
columns: [columns],
onLoadSuccess: function (data) {
var dEnd = new Date();
var ms = dEnd.getTime() - dStart.getTime();
alert(ms);
}
});
//设置分页控件
var p = $('#dgResidentProject').datagrid('getPager');
$(p).pagination({
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录'
});
...全文
1361 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28493143 2017-11-22
  • 打赏
  • 举报
回复
http://www.jb51.net/article/96865.htm 这里详细分析了datagrid加载慢的原因: 对比所有行的行高,统一设为最高行的行高。行越多加载越慢
qq_28493143 2017-11-22
  • 打赏
  • 举报
回复
http://www.jb51.net/article/96865.htm
wwwcys1989 2015-11-05
  • 打赏
  • 举报
回复
我也遇到了,在IE下100行需要18秒左右了,看了一下发现它样式需要IE计算过多。最后再细看,发现它慢的原因了,就是暂时还没去研究怎么解决。慢主要是加了参数rownumbers: true 设为false或不设置就很快了。
tangjun147 2015-06-10
  • 打赏
  • 举报
回复
顶楼上, 项目里遇到字段多的很正常, 或者字段内容超长的,挤得表格都变形的有木有 很简单啊,显示几个主要列,最右边加个<a>详细</a>,你懂的
  • 打赏
  • 举报
回复
引用 8 楼 w290601645 的回复:
[quote=引用 6 楼 u011376884 的回复:] [quote=引用 4 楼 w290601645 的回复:] 是啊,有什么办法呢?我也在不停的问自己~~
几毫秒LZ都认为时间长?[/quote] 失误,本地chrome测试需要3秒,测试服务器测试要6秒;IE11要30秒以上~~~[/quote] 你查什么东西需要50列?100列? 优化列或者使用detailview(详见官网demo--DataGrid-- Master Detail) 先显示几个重要的,在detailview里在显示全部
w290601645 2015-06-03
  • 打赏
  • 举报
回复
引用 6 楼 u011376884 的回复:
[quote=引用 4 楼 w290601645 的回复:] 是啊,有什么办法呢?我也在不停的问自己~~
几毫秒LZ都认为时间长?[/quote] 失误,本地chrome测试需要3秒,测试服务器测试要6秒;IE11要30秒以上~~~
Go 旅城通票 2015-05-28
  • 打赏
  • 举报
回复
引用 4 楼 w290601645 的回复:
[quote=引用 2 楼 starfd 的回复:] 列这么多有什么办法呢……
是啊,有什么办法呢?我也在不停的问自己~~[/quote],皮痒痒了。。嘿嘿 50列你直接用table来弄都不很块吧。。更不要说这种包装过的框架了
w290601645 2015-05-28
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
列这么多有什么办法呢……
是啊,有什么办法呢?我也在不停的问自己~~
w290601645 2015-05-28
  • 打赏
  • 举报
回复
引用 1 楼 danica7773 的回复:
什么表格会有50,100 easyui 没用过,只能提点其它建议,那就是考虑把列进行一个分类,相关的一类列只加载前少数几个,其它的写一个补充插件,点击展开的时候再加载。
可以试试,谢谢你的建议~~
u010892827 2015-05-28
  • 打赏
  • 举报
回复
3MS 能感受到慢?
  • 打赏
  • 举报
回复
引用 4 楼 w290601645 的回复:
是啊,有什么办法呢?我也在不停的问自己~~
几毫秒LZ都认为时间长?
  • 打赏
  • 举报
回复
列这么多有什么办法呢……
打字员 2015-05-27
  • 打赏
  • 举报
回复
什么表格会有50,100 easyui 没用过,只能提点其它建议,那就是考虑把列进行一个分类,相关的一类列只加载前少数几个,其它的写一个补充插件,点击展开的时候再加载。

87,885

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧