easyui datagrid 在IE上加载速度慢, 150行数据就无法忍受了. firefox加载速度还可以.

jquery easyui datagrid使用参考

http://www.cnblogs.com/youring2/archive/2013/03/01/2938661.html  

优化的点有2个:
(1) column的宽度不能设置为自适应, 否则grid刷新速度很慢.  
(2) 采用datagrid-scrollview 方式来渲染数据.

参考文章有:
http://blog.csdn.net/yanghongchang_/article/details/8017715
http://blog.csdn.net/zjh527/article/details/9144629

我的IE 8兼容的版本选择组合(已过时, 仅留个记录):
(1) jquery_easyui V1.3.2, 这是最后一个支持IE8 的版本.
(2) jQuery version 1.8.0, 取自jquery_easyui V1.3.2的下载包中, 和IE8兼容, V1.9以上版本与IE8不兼容.
(3) Bootstrap v3.0.3, 不能使用v3.3.1, 因为v3.3.1需要 jQuery version 1.9.1+. Bootstrap 各版本的下载地址: https://github.com/twbs/bootstrap/tags
(4) easyui的 datagrid-scrollview.js, 采用了easyui官方提供最新版datagrid-scrollview.js
    官网最新的版本地址是:  http://www.jeasyui.com/easyui/datagrid-scrollview.js  
    老版本: https://raw.githubusercontent.com/agusneos/template/master/assets/easyui/datagrid-scrollview.js

在引入了datagrid-scrollview.js后, 解决了加载速度问题, 但也有下面新的问题:
    a.老版本datagrid-scrollview.js, 问题是:
      firefox/IE中,  快速拖动滚动条, 会自动重新从后台DB加载数据.
    b.官方新版datagrid-scrollview.js, 问题是:
      firefox,  快速拖动滚动条, 会自动重新从后台DB加载数据.
      IE, 拖动滚动条, 会有语法错误警告, 但不会自动重新从后台DB加载数据, 好在不影响使用.   
      
      
下面是20150225 更新, 下载了jQuery EasyUI 最新版1.4.1.x, 发现之前碰到的IE8 js脚本报错的问题(报错但不影响正常使用), 现在都解决了.
 
IE 8兼容的版本选择组合(基于JQuery v1.11.2, 20150225 更新):  
 jQuery v1.11.2, 下载 http://www.jeasyui.com/easyui/jquery.min.js
 Bootstrap v3.3.2 , 下载 https://github.com/twbs/bootstrap/tags
 jQuery EasyUI 1.4.1.x, 下载 http://www.jeasyui.com/easyui/jquery.easyui.min.js
 datagrid-scrollview.js, 下载 http://www.jeasyui.com/easyui/datagrid-scrollview.js

IE 8兼容的版本选择组合(基于JQuery v1.8, 20150225 更新): 
 jQuery v1.8.0
 Bootstrap v3.0.3 , 下载 https://github.com/twbs/bootstrap/tags
 jQuery EasyUI 1.4.1.x, 下载 http://www.jeasyui.com/easyui/jquery.easyui.min.js
 datagrid-scrollview.js, 下载 http://www.jeasyui.com/easyui/datagrid-scrollview.js   

另外, 最新的jquery-easyui-1.4.1 版本中, 新引入了 easyui-textbox 组件, 使用方式和 easyui-combobox 差不多, 风格也都是flat样式, 用起来还方便,  但在V1.3.2只能使用标准的input. 为了风格统一, 需要定制一下样式.

html代码:

<input   id="tbName" name="tbName"  class="textbox_readonly"  readonly  size="29"  value="{{your_name}}" >

flat风格的css样式
/* ----------Text Boxes------------*/
.textbox_flat {
    border: 1px solid #6297BC;
}

.textbox_readonly {
    border: 1px dotted #000000;
    outline:0;
    height:22px;  
}

下面javascript代码, 获取textbox的内容
yourName = $('#tbName').val()

总体来讲, easyui datagrid在显示大数据量的时候, 性能还是不太高, 下面几个替代也许可以.

jqGrid
https://free-jqgrid.github.io

http://www.trirand.com/blog/jqgrid/jqgrid.html

SlickGrid
https://github.com/mleibman/SlickGrid/wiki

jqxgrid
http://www.jqwidgets.com/

确定以后 grid 基本都是用 jqgrid 了, 我选择的是free-jqgrid分支版,  jqgrid优点很多: 加载大量数据时效率很好, 支持排序, 支持过滤, 支持resize, 支持分页, 支持export excel, 支持上下键导航, 支持cell formatter, 支持 row的group, 支持tree node, 支持header的group, 支持列冻结, 支持 master-detail, 支持sub grid.

选择不同的jquery ui theme , jqgrid 的 theme 会跟着变.

关于License:
原版 jqgrid 4.7.0 和之前的版本是可以在商业应用中免费使用, jqgrid 4.7.1商业中需要购买, 冠名为 Guriddo jqGrid
Oleg 基于 jqgrid 4.7.0 fork了一个free-jqgrid版本, license 和  jqgrid 4.7.0 一致.
license 说明, http://stackoverflow.com/questions/28529308/jqgrid-license-with-mit-gpl-v2-vs-guriddo-jqgrid-js-creative-commons-license

Jqgrid相关资源:
free-jqgrid 分支的release, https://github.com/free-jqgrid/jqGrid/releases
free-jqgrid的文档: https://free-jqgrid.github.io
jqgrid 3.7 demo的页面, 虽然版本老了点, 但demo组织的非常好,  http://www.trirand.com/blog/jqgrid/jqgrid.html
guriddo分支的demo页面, http://www.guriddo.net/demo/guriddojs/

中文jqgrid资源

jqgrid export to excel, 有很好的option说明, 另外将本项目的jqGridExportToExcel.js, 再结合Jordi Burgos 的 ExcellentExport.js应该能做一个通用的纯客户端的data export功能.
  http://www.codeproject.com/Tips/784342/Export-Data-from-jqGrid-into-a-real-Excel-File

keepfool的博客总是很棒的, 博文: 细说jquery ui和jqgrid的ASP.NET实现
   http://www.cnblogs.com/keepfool/archive/2012/01/05/2313692.html

一系列jqgrid的文章
  http://blog.csdn.net/gengv/article/category/637232

jQuery学习笔记--jqGrid的属性列表
  http://blog.csdn.net/hurryjiang/article/details/6888002
  http://blog.csdn.net/hurryjiang/article/details/6959362

jqGrid整理
  http://www.cnblogs.com/mycoding/archive/2011/07/07/2099878.html

jqGrid 中文实例demo
  http://blog.mn886.net/jqGrid/

EasyUI datagrid优化的更多相关文章

  1. Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能

    日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合>讲了富文本编辑器UEditor的整合与使用 ...

  2. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  3. JQuery easyUI DataGrid 创建复杂列表头(译)

    » Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...

  5. 控制EasyUI DataGrid高度

    这次要说的是控制EasyUI的高度,平时我公司的项目,用EasyUI较多,然后datagrid这个组件是用的非常多的.平时我们都是固定高度,常见代码如下:             <table  ...

  6. EasyUI datagrid 日期时间格式化

    EasyUI datagrid中显示日期时间时,会显示为以下不太直观的数值: 添加以下JavaScript脚本,然后在field中添加 formatter: DateTimeFormatter 即可. ...

  7. easyui datagrid中 多表头方法总结

    easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...

  8. jquery easyui datagrid翻页后再查询始终从第一页开始

    在查询之前将datagrid的属性pageNumber重新设置为1 var opts = grid.datagrid('options'); opts.pageNumber = 1; easyui d ...

  9. 让easyui datagrid支持bootstrap的tooltip

    让easyui datagrid支持bootstrap的tooltip 发表于 下午 1:53 by ylpro.net & 分类 Java. Easyui在1.3.3版本之前是不支持tool ...

随机推荐

  1. Android成长日记-ListView

    数据适配器:把复杂的数据(数组,链表,数据库,集合等)填充在指定的视图界面上 适配器的类型: ① ArrayAdapter(数组适配器):用于绑定格式单一的数据 数据源:可以是集合或数组 ① Simp ...

  2. light oj 1236 分解质因数

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70017#problem/H 题意:求满足1<=i<=j<=n ...

  3. 洛谷P1901 发射站

    题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发射站接 ...

  4. easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题

    做一个用easyui的datagrid显示数据的功能时发现表格的列头与数据错位了,而且这个现象不总是能重现,一直没搞清楚原因.后来偶然在控制台看出了一点端倪: 推测表头或者单元格的class名应该是用 ...

  5. Hong Kong Regional Online Preliminary 2016 C. Classrooms

    Classrooms 传送门 The new semester is about to begin, and finding classrooms for orientation activities ...

  6. Oracle 数据类型

    类型 含义 CHAR(length) 存储固定长度的字符串.参数length指定了长度,如果存储的字符串长度小于length,用空格填充.默认长度是1,最长不超过2000字节. VARCHAR2(le ...

  7. 【项目】iOS - 使用UIWebView占用内存过大

    通过其他博主介绍的解决这个问题的博客: http://blog.techno-barje.fr//post/2010/10/04/UIWebView-secrets-part1-memory-leak ...

  8. char *p = "abcdefg"; p[0] = p[1]出错

    参考:http://blog.sina.com.cn/s/blog_5c0172280100ut4o.html 1.char *s="abc"; 看这个赋值: 右边,是" ...

  9. C++中int,float,string,char*的转换(待续)

    //float转string char a[100]; float b = 1.234; sprintf(a, "%f", b); string result(a); //int转 ...

  10. curl方式创建elasticsearch的mapping

    curl方式创建elasticsearch的mapping curl -XPUT 'http://192.168.1.105:9200/bank/item2/_mapping' -d '{ " ...