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 相关文章推荐
Javascript Global对象
Aug 13 Javascript
在js中单选框和复选框获取值的方式
Nov 06 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
jquery退出each循环的写法
Feb 26 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
webuploader分片上传的实现代码(前后端分离)
Sep 10 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 Javascript
Openlayers实现地图的基本操作
Sep 28 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 adodb操作mysql数据库
2009/03/19 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php判断linux下程序问题实例
2015/07/09 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
Javascript 实用小技巧
2010/04/07 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python open读写文件实现脚本
2008/09/06 Python
python 识别图片中的文字信息方法
2018/05/10 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
Python补齐字符串长度的实例
2018/11/15 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
几个判断型的面试题
2012/07/03 面试题
高二化学教学反思
2014/01/30 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
安全月活动总结
2014/05/05 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
pt-archiver 主键自增
2022/04/26 MySQL