Extjs6中BufferedStore组件
来源:互联网 发布:数据安全管理方法 编辑:程序博客网 时间:2024/06/06 08:54
在使用BufferedStore做滚动条加载的时候如果数据变动频繁,就会出现加载问题。
出现情况步骤:
1、滚动条拖动到末尾,等待加载完成。
2、拖动到中间位置,改变数据量。比如6000条数据改变为6010。
3、在拖动到末尾,就会出现问题,grid一直存在遮罩效果,正在加载。
当加载最后一页的时候执行了me.fireEvent('cachemiss', me, start, end);//出现正在加载中,
如果要消除遮罩效果需要执行 me.fireEvent('cachefilled', me, start, end);
需要执行监听pageadd触发pageAddHandler方法。
跟踪发现prefetchRange方法中me.pageCached(page)最后一页结果是加载完成的,所以不会触发pageadd事件,所以加入 page == endPage,最后一页重新加载一次数据。
解决办法:
重写BufferedStore
代码:
Ext.define('expand.overrides.data.BufferedStore', { override :'Ext.data.BufferedStore', prefetchRange: function(start, end) { var me = this, startPage, endPage, page, data = me.getData(); if (!me.rangeCached(start, end)) { startPage = me.getPageFromRecordIndex(start); endPage = me.getPageFromRecordIndex(end); data.setMaxSize(me.calculatePageCacheSize(end - start + 1)); for (page = startPage; page <= endPage; page++) { if (!me.pageCached(page) || page == endPage) { me.prefetchPage(page); } } } }});
0 0
- Extjs6中BufferedStore组件
- Extjs6.2 Form中组件的使用及正则验证
- extjs6 自动生成组件汉化
- ExtJs6 grid中根据返回数据结果动态添加checkcolumn组件
- [Extjs6] 组件的显示和隐藏
- extjs6.2各种表单组件的使用
- ExtJs6学习(四)【组件和容器】
- Extjs6.2 中使用 UEditor
- extjs6 基础组件扩展和自定义组件封装--01前言
- extjs6整合到web项目中
- 从零开始学习ExtJs6系列教程二【窗体Window组件】
- ExtJs6 checkboxgroup组件根据数据库数据默认选中设置方法
- extjs6 基础组件扩展和自定义组件封装--02目录结构
- extjs6 基础组件扩展和自定义组件封装--03全局方法、变量介绍
- extjs6 基础组件扩展和自定义组件封装--04静态js方法的设计思想
- extjs6 基础组件扩展和自定义组件封装--05权限控制设计思想
- [Extjs6] 随记--store中定义数据及使用
- Extjs6.2系列之图片组件及click点击事件监听
- ios 开发百度地图的使用
- 4.DIV+CSS布局
- 莫队算法(CF #340 (Div. 2) E. XOR and Favorite Number)
- java下载文件
- 腾讯云大数据助力智慧城市发展
- Extjs6中BufferedStore组件
- Java多线程编程1----基础知识--守护线程
- leetcode--Reverse Integer
- 常用的正则表达式 (验证数字的正则表达式)
- Game of Thrones S06E02 POV:Imp
- YOLO: Real-Time Object Detection
- 山东省第二届ACM大学生程序设计竞赛 Identifiers
- mysql查询优化技巧
- WCF messageheader校验头