【发布时间】:2013-07-07 09:33:49
【问题描述】:
假设我有一家商店,我的数据库中有 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 行,那么使用该商店的所有其他位置也将只有那一行(我没有'不一定想要)所以理论上即时创建商店是我唯一的选择吗?似乎应该有一个更简单的方法,因此我想我会问。必须有更好的方法,而不是创建一个商店,然后从该新商店获取记录......
【问题讨论】: