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 相关文章推荐
IE FF OPERA都可用的弹出层实现代码
Sep 29 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
Mar 18 Javascript
理解javascript中的with关键字
Feb 15 Javascript
JQuery学习总结【一】
Dec 01 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
Feb 20 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
Jun 18 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
模拟flock实现文件锁定
2007/02/14 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
理解javascript回调函数
2014/12/28 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
使用graphics.py实现2048小游戏
2015/03/10 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
物理教师自荐信范文
2013/12/28 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
网络营销实训总结
2015/08/03 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python