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 相关文章推荐
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Oct 20 Javascript
浅谈Javascript面向对象编程
Nov 15 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
Jul 21 Javascript
jquery使用$(element).is()来判断获取的tagName
Aug 24 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
jQuery实现背景滑动菜单
Dec 02 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
Vue实现剪贴板复制功能
Dec 31 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
如何利用python查找电脑文件
2018/04/27 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
python实发邮件实例详解
2019/11/11 Python
Python列表如何更新值
2020/05/27 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
教师三严三实对照检查材料
2014/09/25 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
张思德观后感
2015/06/09 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
校园安全主题班会
2015/08/12 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers