将网格变为缓冲网格的问题尚未解决。由于我已经应用了所有使用的技术,网格中的问题仍然存在。如何在已应用的extjs中应用BufferedRenderer或BufferedGrid属性加载约20000条记录的网格?
答案 0 :(得分:0)
我可以告诉你尝试的唯一方法是缓冲商店,尝试设置商店buffered: true;
允许Store在页面缓存,记录页面中预取和缓存,然后满足此页面缓存的加载要求。
要使用缓冲商店,请通过加载第一页启动该过程。呈现的行数是自动确定的,并且请求并缓存保持高速缓存准备滚动所需的页面范围。例如:
myStore.loadPage(1); // Load page 1
实例化BufferedRenderer,它将监视网格中的滚动,并根据需要从页面缓存中刷新视图的行。当视图滚动绘制预取数据任一端附近的数据时,它还会将新数据提取到页面缓存中。
从预取数据触发视图刷新的边距是Ext.grid.plugin.BufferedRenderer.numFromEdge,Ext.grid.plugin.BufferedRenderer.leadingBufferZone和Ext.grid.plugin.BufferedRenderer.trailingBufferZone。
触发将更多数据加载到页面缓存中的边距是leadingBufferZone和trailingBufferZone。
默认情况下,只有5页数据(除了可见区域以外的页面)缓存在页面缓存中,当视图向下移动数据集时,旧页面将从缓存中逐出。这由purgePageCount设置控制。
将此值设置为零意味着没有页面滚动到页面缓存之外,并且最终整个数据集可能会出现在页面缓存中。只要数据集没有达到天文数字比例,这有时是可取的。
我在Extjs 5上遇到了同样的问题并用缓冲存储解决了它,但是在你的ext版本中没有像我的版本那样的特定类,所以也许你可以用这个属性来做它
在这里你可以阅读有关extjs 5:http://docs.sencha.com/extjs/5.1/5.1.2-apidocs/#!/api/Ext.data.BufferedStore
的缓冲存储