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 相关文章推荐
js截取字符串的两种方法及区别详解
Nov 05 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
Feb 13 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
jQuery设计思想
Mar 07 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
微信小程序实现发红包功能
Jul 11 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
javascript+css实现进度条效果
Mar 25 Javascript
vue封装数字翻牌器
Apr 20 Vue.js
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
php5中类的学习
2008/03/28 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
PHP常用技巧汇总
2016/03/04 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
Python 字典dict使用介绍
2014/11/30 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
计算机专业职业规划
2014/02/28 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
优秀教师先进材料
2014/12/16 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
走进毛泽东观后感
2015/06/04 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
股权投资协议书
2016/03/23 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书