如果您按照 Ext JS 4.1.3 文档中的buffered: true
说明在商店中使用配置,则可以: .
buffered : Boolean 允许 Store 在页面缓存中预取和缓存记录页面,然后满足来自此页面缓存的加载要求。
要使用缓冲存储,请通过加载第一页来启动该过程。呈现的行数是自动确定的,并且请求和缓存保持缓存准备好滚动所需的页面范围。例子:
myStore.loadPage(1); // Load page 1
PagingScroller 被实例化,它将监视网格中的滚动,并根据需要从页面缓存中刷新视图的行。当视图的滚动在预取数据任一端附近的数据上绘制时,它还会将新数据拉入页面缓存。
从预取数据触发视图刷新的边距是 Ext.grid.PagingScroller.numFromEdge、Ext.grid.PagingScroller.leadingBufferZone 和 Ext.grid.PagingScroller.trailingBufferZone。
触发将更多数据加载到页面缓存中的边距是leadingBufferZone 和 trailingBufferZone。
默认情况下,只有 5 页数据缓存在页面缓存中,当视图向下移动通过数据集时,页面“滚动”出缓冲区。将此值设置为零意味着页面缓存中不会滚动任何页面,并且最终整个数据集可能会出现在页面缓存中。只要数据集没有达到天文比例,这有时是可取的。
通过将 SelectionModel 配置为在这些记录循环出存储的主集合时不丢弃其集合中的记录,可以跨页面边界维护选择状态。这是通过像这样配置 SelectionModel 来完成的:
selModel: {
pruneRemoved: false
}
默认为:假
可用时间:4.0.0
如上所述,您还必须将pageSize
商店上的配置设置为您想要的。
一句警告:您找不到任何具有无限滚动的本地商店的示例,因为使无限滚动可行的记录数超过了您应该合理地保留在本地商店中的记录数。
换句话说,渲染并不是唯一降低浏览器速度的因素,它也是您尝试在本地处理的数据量。
如果您觉得需要实现无限滚动,则可能是时候转换为远程加载的数据存储了。