我正在使用ExtJS Grid,它的速度非常慢,有 3000 多条记录。排序大约需要 4 秒。
我在想也许可以在我的表格中使用分页。但是在阅读文档之后,我仍然有点不确定分页在 extjs 中是如何工作的。每次翻页时都会从服务器中提取数据吗?我宁愿不是这样。我希望将 3000 条记录保存在浏览器中,然后呈现的只是这些行的一部分。
我也在使用 Extjs 版本 4.2.1。如果我升级到版本 5。我会得到一些性能改进吗?
我正在使用ExtJS Grid,它的速度非常慢,有 3000 多条记录。排序大约需要 4 秒。
我在想也许可以在我的表格中使用分页。但是在阅读文档之后,我仍然有点不确定分页在 extjs 中是如何工作的。每次翻页时都会从服务器中提取数据吗?我宁愿不是这样。我希望将 3000 条记录保存在浏览器中,然后呈现的只是这些行的一部分。
我也在使用 Extjs 版本 4.2.1。如果我升级到版本 5。我会得到一些性能改进吗?
尝试使用缓冲渲染器插件,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
您可以将数据保存在 LocalStorage 中。它允许您将数据存储在浏览器中。您需要一个数据模型,用 XML 中的数据填充并存储在浏览器中。下次您只需检查数据是否已存储,如果没有则下载。Ext Grid 可以很好地处理这些数据。
这个对我有用。