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 相关文章推荐
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
使用jQuery validate 验证注册表单实例演示
Mar 25 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
Aug 13 Javascript
Jquery插件编写简明教程
Mar 25 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
JavaScript表单验证实现代码
May 22 Javascript
详解PHP后期静态绑定分析与应用
Mar 21 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 Javascript
微信小程序 行的删除和增加操作实现详解
Sep 29 Javascript
laravel实现中文和英语互相切换的例子
Sep 30 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使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
用js遍历 table的脚本
2008/07/23 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
Javascript的闭包详解
2014/12/26 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
npm全局环境变量配置详解
2020/12/15 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python计数排序和基数排序算法实例
2014/04/25 Python
初步讲解Python中的元组概念
2015/05/21 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
Python自定义一个异常类的方法
2019/06/27 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
如何一键升级Python所有包
2020/11/05 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
实习自我评价怎么写
2013/12/02 职场文书
国企干部对照检查材料
2014/08/22 职场文书
教师党员个人自我评价
2015/03/04 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
小学班级标语口号大全
2015/12/26 职场文书
高效课堂教学反思
2016/02/24 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
七个非常实用的Python工具包总结
2021/06/15 Python
vue中 this.$set的使用详解
2021/11/17 Vue.js
Python使用openpyxl模块处理Excel文件
2022/06/05 Python