在使用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进行性能优化,以解决大数据量加载慢的问题。 首先,我们需要理解问题的根源。当datagrid加载大量数据时,如果未进行优化,其内部的某些功能,如行高自动调整,可能导致性能...
4. **自定义加载更多功能**: 如果需要自定义加载更多数据的行为,例如添加一个“加载更多”按钮,可以在按钮的点击事件中调用DataGrid的`reload`方法,传递新的页码和每页大小。 ```html ()">加载更多 function ...
标题“easyui datagrid表格打印”关注的就是如何解决这个问题,即如何将经过formatter处理后的数据在打印时保持原有的格式。 在描述中提到的“支持formatter格式化数据的打印”,指的是Datagrid中用于数据美化和...
下面将详细介绍两种有效的方法来实现EasyUI Datagrid数据导出到Excel的功能,并结合提供的文件名来推测具体实现步骤。 **方法一:使用JavaScript库(例如wxport)** 文件`wxport excel.txt`可能包含了使用wxport库...
1. **理解EasyUI datagrid**:首先,你需要熟悉EasyUI datagrid的基本用法,包括其初始化、数据加载、列配置等。 2. **分析源码**:查看easyui的源代码,找到处理表格滚动的部分,理解其工作原理。 3. **创建固定...
easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格
### 解决EasyUI dataGrid列较多时无数据显示不全的问题 在使用EasyUI框架进行前端开发的过程中,可能会遇到dataGrid组件在数据为空时列显示不完整的问题。这不仅影响用户体验,也降低了系统的可用性。本文将详细...
easyui datagrid editor回车切换单元格示例,适合熟悉easyui但又不懂如何做的人员,可能参考一下源码JS。
easyUI datagrid 自动调整行号大小
EasyUI 是一个基于 jQuery 的 UI 框架,它提供了丰富的组件,包括表格(DataGrid)等,使得 Web 应用程序的界面开发更加便捷。在这个"EasyUI DataGrid 过滤用法实例"中,我们将深入探讨如何利用 EasyUI 的 DataGrid ...
在本示例中,我们关注的是如何在EasyUI的Datagrid组件上添加一个特殊功能:当鼠标悬停在某一行时,弹出一个窗口显示该行的关键信息,例如用于图片预览。以下是对这个知识点的详细解释: 1. **EasyUI Datagrid**: ...
首先,EasyUI Datagrid的核心在于其强大的数据绑定能力,它可以与JSON或XML格式的数据源进行交互,通过配置列定义、分页参数等,实现动态加载数据并展示在表格中。在分页查询中,Datagrid通常会通过Ajax请求向服务器...
这个“jquery easyui datagrid demo”包含了一些关于如何使用 jQuery EasyUI 中 Datagrid 组件的示例和相关文档,帮助我们理解和应用 Datagrid。 首先,`datagrid.doc` 文件很可能是 Datagrid 的简要说明文档,它...
通过上述介绍可以看出,无论是前端还是后端,都有多种方法可以解决 EasyUI Datagrid 中的中文排序问题。前端通过自定义排序函数,后端通过数据库自带的排序功能,都可以有效地实现中文按拼音排序的目标。开发者可以...
在使用EasyUI框架开发Web应用时,Datagrid组件是一个非常重要的元素,它提供了一种方便的方式来展示和操作数据。在标题“easyui datagrid在编辑状态下更新列的值”中,我们关注的是如何在Datagrid的编辑模式下动态地...
jquery easyui datagrid 性能优化,优化后可快速提升查询性能。唯一的缺陷就是不支持可编辑grid了。只需要在引入easyui.js后面引入此js即可。
jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) Demo 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件,源码奉献!!!
例如,我们可以创建一个JSON对象存储所有筛选条件,每次复选框状态改变时,更新这个对象,然后调用datagrid的`reload`方法重新加载数据。 在描述中提到的"200-300"和"500-600"这样的范围筛选,可以通过EasyUI的`...
easyUI datagrid 行上移,下移,置顶,置底的方法