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 相关文章推荐
Jquery中给animation加更多的运作效果实例
Sep 05 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
Mar 30 Javascript
详解JavaScript数组和字符串中去除重复值的方法
Mar 07 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
在JSP中如何实现MD5加密的方法
Nov 02 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
Vue中的methods、watch、computed的区别
Nov 26 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
vue实现扫码功能
Jan 17 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 Javascript
详解Vue中的watch和computed
Nov 09 Javascript
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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
Smarty模板语法详解
2019/07/20 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
python实现基本进制转换的方法
2015/07/11 Python
python常见的格式化输出小结
2016/12/15 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
计算机专业学生求职信分享
2013/12/15 职场文书
公司活动方案范文
2014/03/06 职场文书
教学评估实施方案
2014/03/16 职场文书
四年级学生评语大全
2014/04/21 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
公司员工奖惩制度
2015/08/04 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技