我正在使用 ExtJS Grid ,并且在3000+记录中速度相当慢。排序大约需要4秒钟。
我想也许在我的桌子上使用分页。但是在阅读完文档之后,我仍然不确定分页在extjs中是如何工作的。每次翻页时,这是否都会从服务器中提取数据?我希望不是这样的。我希望在浏览器中保存3000条记录,然后渲染的只是这些行的一部分。
我也使用Extjs版本4.2.1。如果我升级到版本5.我会获得一些性能改进吗?
答案 0 :(得分:8)
尝试使用缓冲的渲染器插件,使用该插件可以获得3000多条记录。
来自sencha doc的片段:
var grid = Ext.create('Ext.grid.Panel', {
// ...
autoLoad: true,
plugins: {
ptype: 'bufferedrenderer',
trailingBufferZone: 20, // Keep 20 rows rendered in the table behind scroll
leadingBufferZone: 50 // Keep 50 rows rendered in the table ahead of scroll
},
// ...
});
您可以使用尾随/前导缓冲区配置来修剪网格,或者只是从配置中跳过它们。我从来不需要修剪自己
REF: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.plugin.BufferedRenderer
答案 1 :(得分:0)
您可以将数据保留在LocalStorage中。它使您可以将数据存储在浏览器中。您将需要一个数据模型,该模型将填充来自XML的数据并将其存储在浏览器中。下次您只需检查数据是否已存储,然后下载。 Ext Grid可以很好地处理这些数据。
对我有用。