Extjs使用技巧之,大数据量Grid做数据移除和添加效率优化
2015-04-22 09:51
489 查看
慢的原因:
因为每一次从Store中移除一条数据,Grid都会进行重画,当数据量比较大的时候,需要的时间会很长,例如在1500条Grid中移除1条可能需要2秒左右,移除10条就需要10多秒,移除800条,谷歌浏览器就有崩溃的嫌疑。
解决思路:
1、先禁用掉Ext的重绘,等删除完成后在恢复重绘功能,代码如下
[javascript]
view plaincopy
Ext.suspendLayouts();
store.remove(selection);
Ext.resumeLayouts(true);
2、先禁用掉Store的事件,等处理完成后,恢复,再将store重新指定给Grid,代码如下
store.suspendEvents();
store.remove(selection);
store.resumeEvents();grid.reconfigure(store);
3、两者结合
Ext.suspendLayouts();
store.suspendEvents();
store.remove(selection);
store.resumeEvents();
grid.reconfigure(store);
Ext.resumeLayouts(true);
因为每一次从Store中移除一条数据,Grid都会进行重画,当数据量比较大的时候,需要的时间会很长,例如在1500条Grid中移除1条可能需要2秒左右,移除10条就需要10多秒,移除800条,谷歌浏览器就有崩溃的嫌疑。
解决思路:
1、先禁用掉Ext的重绘,等删除完成后在恢复重绘功能,代码如下
[javascript]
view plaincopy
Ext.suspendLayouts();
store.remove(selection);
Ext.resumeLayouts(true);
2、先禁用掉Store的事件,等处理完成后,恢复,再将store重新指定给Grid,代码如下
store.suspendEvents();
store.remove(selection);
store.resumeEvents();grid.reconfigure(store);
3、两者结合
Ext.suspendLayouts();
store.suspendEvents();
store.remove(selection);
store.resumeEvents();
grid.reconfigure(store);
Ext.resumeLayouts(true);
相关文章推荐
- Extjs使用技巧之,大数据量Grid做数据移除和添加效率优化
- AS3效率优化:使用Vector数据类型
- 技巧和诀窍:使用PrincipalPermissionAttribute在业务和数据层中添加授权规则
- extjs的grid应用(java 使用json绑定数据 翻页)
- oracle优化,hint的使用! (系统自动优化有时不是最好的,我们可以手动添加hint来提高查询效率
- AS3效率优化:使用Vector数据类型
- Struts2与ExtJs Grid结合使用json格式数据
- extjs4 grid 多选、添加复选框、动态添加删除数据
- Extjs GridPanel用XmlReader读取xml文件的数据 及mapping的使用规则
- 技巧和诀窍:使用PrincipalPermissionAttribute在业务和数据层中添加授权规则
- extjs学习笔记(六) grid中数据的保存,添加和删除
- ExtJS中grid按照使用Expand插件、分组显示、中文拼音首字母排序、改变行背景、列背景、静态数据分页综合案例
- extjs中form与grid交互数据(record)的方法使用
- ExtJS4 grid表格数据选取和使用
- Extjs给gridPanel添加单价双击事件和获取当前行的数据
- extjs_03_grid(添加数据)
- 点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
- 14-mysql优化之使用存储过程向mysql数据库中添加4000000条数据
- FMDB性能优化问题。使用FMDB事务批量更新数据库速度问题。(亲测可以呀---740条数据用和不用事务效率差别20倍+)
- android群英传笔记——ListView常用优化技巧(一、使用ViewHolder模式提高效率)