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 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
Dec 13 Javascript
JavaScript打印网页指定区域的例子
May 03 Javascript
JS实现点击上移下移LI行数据的方法
Aug 05 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 Javascript
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
Dec 07 Javascript
Koa2 之文件上传下载的示例代码
Mar 29 Javascript
jquery实现选项卡切换代码实例
May 14 jQuery
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 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
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
javascript 自定义事件初探
2009/08/21 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python求出0~100以内的所有素数
2018/01/23 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
Django如何将URL映射到视图
2019/07/29 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
利用python进行文件操作
2020/12/04 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
财务总监管理职责范文
2014/03/09 职场文书
高中开学感言
2015/08/01 职场文书
个人售房合同协议书
2016/03/21 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python