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代码
Jan 01 Javascript
firefox插件Firebug的使用教程
Jan 02 Javascript
js中各种类型的变量在if条件中是true还是false
Jul 16 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
详解javascript遍历方式
Nov 11 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
JS前端加密算法示例
Dec 22 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
详解React中setState回调函数
Jun 14 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
OpenLayers3实现鼠标移动显示坐标
Sep 25 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 页面执行时间计算代码
2008/12/04 PHP
php xml文件操作代码(一)
2009/03/20 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
python中requests模块的使用方法
2015/04/08 Python
Python做文本按行去重的实现方法
2016/10/19 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
日本小田急百货官网:Odakyu
2018/07/19 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
母亲节感恩寄语
2014/02/21 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
高中生操行评语大全
2014/04/25 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书