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 相关文章推荐
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
php的文件上传入门教程(实例讲解)
Apr 10 Javascript
javascript继承的六大模式小结
Apr 13 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 Javascript
小程序分享模块超级详解(推荐)
Apr 10 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
使用TS来编写express服务器的方法步骤
Oct 29 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
php函数与传递参数实例分析
2014/11/15 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php use和include区别总结
2019/10/13 PHP
js资料prototype 属性
2007/03/13 Javascript
javascript add event remove event
2008/04/07 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
js简易版购物车功能
2017/06/17 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
angular动态表单制作
2018/02/23 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
Python模拟登录12306的方法
2014/12/30 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
写演讲稿要注意的六件事
2014/01/14 职场文书
房屋公证委托书
2014/04/03 职场文书
代办委托书怎样写
2014/04/08 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers