6

我正在使用ExtJS Grid,它的速度非常慢,有 3000 多条记录。排序大约需要 4 秒。

我在想也许可以在我的表格中使用分页。但是在阅读文档之后,我仍然有点不确定分页在 extjs 中是如何工作的。每次翻页时都会从服务器中提取数据吗?我宁愿不是这样。我希望将 3000 条记录保存在浏览器中,然后呈现的只是这些行的一部分。

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

4

2 回答 2

8

尝试使用缓冲渲染器插件,3000+ 条记录并不多,与插件。

sencha 文档的片段:

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
    },
    // ...
});

您可以使用尾随/前导缓冲区配置来修剪您的网格,或者只是从配置中跳过它们。我从来不需要修剪自己

参考: http ://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.plugin.BufferedRenderer

于 2014-06-05T20:01:42.020 回答
0

您可以将数据保存在 LocalStorage 中。它允许您将数据存储在浏览器中。您需要一个数据模型,用 XML 中的数据填充并存储在浏览器中。下次您只需检查数据是否已存储,如果没有则下载。Ext Grid 可以很好地处理这些数据。

这个对我有用。

于 2019-05-28T06:00:28.653 回答