在使用easyui datagrid途中发现加载数据的效率真的不是一般的差。经测试IE8加载300条数据就感觉明显的慢了,加载2000条数据就另人崩溃用时差不多60 秒,就算在google浏览器测试结果也快不了几秒。 平时听闻easyui datagrid效率底下,自己测试才发现真是使人无法忍受。
笔者只好百度,google解决方法,发现一篇文章说改
//1.3.3版本是这样的,其它版本也是这句代码
$(_1e0).html(_1e4.join(""));
改为:
$(_1e0)[0].innerHTML = _1e4.join(""); 笔者找了类似的地方修改,测试后结果还是一样。没有任何效果,可能是跟作者的版本不同,我的是1.3版,作者是的1.33版。
忙了半天,只好自己续步调试追踪。经过努力终于找到了导致慢的真正凶手。真正造成慢的代码如下:
- for (var i = 0; i < trs2.length; i++) {
- var tr1 = $(trs1[i]);
- var tr2 = $(trs2[i]);
- tr1.css("height", "");
- tr2.css("height", "");
- var _43f = Math.max(tr1.height(), tr2.height());
- tr1.css("height", _43f);
- tr2.css("height", _43f);
- }
看代码就清楚,上面是对比表格中两行的高度,然后把高的赋值给各行。
解决:凶手找到了,怎样解决呢?笔者是直接屏蔽她们的对比和赋值。让浏览器自动适应高度吧。
如下:
- for (var i = 0; i < trs2.length; i++) {
- /*
- var tr1 = $(trs1[i]);
- var tr2 = $(trs2[i]);
- tr1.css("height", "");
- tr2.css("height", "");
- var _43f = Math.max(tr1.height(), tr2.height());
- tr1.css("height", _43f);
- tr2.css("height", _43f);
- */
- }
好了,屏蔽后。让我们测试效率。测试一万条记录,测试代码片段如下:
- var obj = { 'total': 100, 'rows': [{ id: '1', name: '一' }, { id: '2', name: '二'}] };
- for (var i = 0; i < 10000; i++) {
- var row = ({ id: 'id' + i, name: '一' });
- obj.rows.push(row);
- }
- $('#tt').datagrid({
- url: null,
- pagination: true,
- pageSize: 20,
- pageNumber: 1,
- rownumbers: true,
- fitColumns: false,
- columns: [[
- { field: 'id', title: 'id', width: 100 },
- { field: 'name', title: 'Name', width: 100 }
- ]]
- });
- $('#tt').datagrid('loadData', obj);
好了,现在是10000条记录啊,IE8只用1秒不到加载完成。改成3000条记录,只要1~2秒加载完成。
结论:把那该死设置高度代码直接屏蔽。嘻嘻,有惊喜。EASYUI版本:1.3版
相关推荐
下面小编就为大家带来一篇easyui datagrid 大数据加载效率慢,优化解决方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JS EasyUI DataGrid动态加载数据
easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格
EasyUI DataGrid过滤用法实例
easyUI datagrid 自动调整行号大小
easyui datagrid editor回车切换单元格示例,适合熟悉easyui但又不懂如何做的人员,可能参考一下源码JS。
两种方法将easyui datagrid 中的数据导出到Excel中,均以验证可以正常使用
jquery easyui datagrid 性能优化,优化后可快速提升查询性能。唯一的缺陷就是不支持可编辑grid了。只需要在引入easyui.js后面引入此js即可。
解决EasyUIdataGrid列比较多,无数据,列展现不全
jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) Demo 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件,源码奉献!!!
easyUI datagrid 行上移,下移,置顶,置底的方法
easyui datagrid 多条件筛选 可复选 过滤 例如过滤200-300 500-600 类似淘宝筛选 但允许复选
jquery easyui 扩展 datagrid 自定义动态隐藏显示列
EasyUI Datagrid 中文排序的问题 解决了WEB端和后台(Oracle、MySQL)中文排序问题
jquery easyui demo 网页下载下来打包了,还有datagrid简要说明
在easyui 的datagrid编辑状态下实时更新其他处于编辑或者没在编辑下的列值,并在结束编辑后得到的row的数据为更改后的数据。
easyui datagrid 导出到excel,图解
NULL 博文链接:https://skyfar666.iteye.com/blog/1840145
一个update扩展方法 文档中一种是比较笨的方法 一次只能修改一个列而且受列编辑类型影响(比如number datetime)扩展一次编辑多列,不受编辑类型影响,没有编辑属性也可以。