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 相关文章推荐
Extjs407 getValue()和getRawValue()区别介绍
May 21 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
js从Cookies里面取值的简单实现
Jun 30 Javascript
jquery不常用方法汇总
Jul 26 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
使用JavaScript进行表单校验功能
Aug 01 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
微信小程序签到功能
2018/10/31 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Python将xml和xsl转换为html的方法
2015/03/10 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
详解Python装饰器
2019/03/25 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
python实现电子词典
2020/03/03 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
造价工程师个人求职信
2013/09/21 职场文书
三查三看党性分析材料
2014/02/18 职场文书
元宵节主持词
2014/03/25 职场文书
股东协议书范本
2014/04/14 职场文书
指导教师推荐意见
2015/06/05 职场文书
关于保护环境的建议书
2019/06/24 职场文书
python元组打包和解包过程详解
2021/08/02 Python
Javascript之datagrid查询详解
2021/09/15 Javascript
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers