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 Object与Function使用
Jan 11 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
JavaScript 详解预编译原理
Jan 22 Javascript
使用jQuery,Angular实现登录界面验证码详解
Apr 27 jQuery
javascript兼容性(实例讲解)
Aug 15 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
详解JavaScript 的变量
Mar 08 Javascript
vue增加强缓存和版本号的实现方法
May 01 Javascript
vue动态配置模板 'component is'代码
Jul 04 Javascript
Jquery让form表单异步提交代码实现
Nov 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 函数语法介绍一
2009/06/14 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
Vue header组件开发详解
2018/01/26 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
就业推荐表自我鉴定范文
2014/03/21 职场文书
加油口号大全
2014/06/13 职场文书
学校开学标语
2014/10/06 职场文书
2015初中团委工作总结
2015/07/28 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS