easyui datagrid 大数据加载效率慢,优化解决方法(推荐)


Posted in Javascript onNovember 09, 2016

在使用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 大数据加载效率慢,优化解决方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
Nov 08 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
Mar 06 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
javascript匿名函数实例分析
Nov 18 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
利用js编写网页进度条效果
Oct 08 Javascript
jquery 验证用户名是否重复代码实例
May 14 jQuery
jQuery EasyUI中的日期控件DateBox修改方法
Nov 09 #Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 #Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 #Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 #Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 #Javascript
给easyui datebox扩展一个清空的实例
Nov 09 #Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 #Javascript
You might like
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
javascript操作表格排序实例分析
2015/05/06 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
JavaScript中创建原子的方法总结
2018/08/26 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
python实现大学人员管理系统
2019/10/25 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
python与js主要区别点总结
2020/09/13 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
Linux常见面试题
2013/03/18 面试题
餐厅总厨求职信
2014/03/04 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
美术指导求职信
2014/03/17 职场文书
水电站项目建议书
2014/05/12 职场文书
本科生就业推荐信
2014/05/19 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
前台岗位职责
2015/02/13 职场文书
停课通知书
2015/04/24 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
欢送会主持词
2015/07/01 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript