所以说我有一家商店,在我的数据库中我有 20,000,000 行。(也足以让我设置页面大小,这样我每页只能返回 100 行)。由于我设置了页面大小,所以当我进行原始调用时,我只能得到 100 个项目。因此,以下返回 null:
Ext.getStore('MyLargeStore').getById(200); // returns null
这对我来说很有意义,因为从技术上讲,JS 端的商店没有设置特定的 id。但是,如果该 id 不存在,是否有强制查找?据我所知,我已经在我的商店中完成了所有需要它的“远程”和“自动”:
Ext.define('MyApp.store.MyLargeStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.MyLargeModel'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
autoSync: true,
model: 'MyApp.model.MyLargeModel',
remoteFilter: true,
remoteSort: true,
storeId: 'MyLargeModel',
buffered: true,
pageSize: 100
}, cfg)]);
}
});
无论如何,只要 id 不存在,它就可以从远程服务器中提取?我似乎在文档中找不到方法(除非我错过了它,因为他们的文档有时有点难以破译=/)
另外,我假设您始终可以在商店中加载,但我很确定如果我只加载那 1 行,那么使用该商店的所有其他位置也将只有该行(我不一定想要)那么理论上,动态创建商店是我唯一的选择吗?似乎应该有一个更简单的方法,因此我想我会问。必须有一些更好的方法,而不是创建一个商店然后从那个新商店抓取记录......