ExtJS Grid缓慢,有3000多条记录

时间:2014-06-05 15:21:18

标签: javascript extjs extjs4 extjs5

我正在使用 ExtJS Grid ,并且在3000+记录中速度相当慢。排序大约需要4秒钟。

我想也许在我的桌子上使用分页。但是在阅读完文档之后,我仍然不确定分页在extjs中是如何工作的。每次翻页时,这是否都会从服务器中提取数据?我希望不是这样的。我希望在浏览器中保存3000条记录,然后渲染的只是这些行的一部分。

我也使用Extjs版本4.2.1。如果我升级到版本5.我会获得一些性能改进吗?

2 个答案:

答案 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可以很好地处理这些数据。

对我有用。