Ext JS 4.2 中的分页内存代理等效技术是啥
Posted
技术标签:
【中文标题】Ext JS 4.2 中的分页内存代理等效技术是啥【英文标题】:What is the Paging memory proxy equivalent technique in Ext JS 4.2Ext JS 4.2 中的分页内存代理等效技术是什么 【发布时间】:2013-03-13 01:12:37 【问题描述】:在 Ext JS 的 3.x 版中,我有一个带有 json 代理的存储,用于从服务器获取完整的数据集,然后我将该存储用作存储中的读取器,并使用 PagingMemoryProxy 将原始存储作为阅读器为网格面板提供分页数据。
json 存储:-
var fleetReader = new Ext.data.JsonReader(
root:'results',
successProperty:'success',
totalProperty:'total',
idProperty:'vid'
,
fleetRec
);
var fleetDs = new Ext.data.Store(
proxy: new Ext.data.ScriptTagProxy(
url: 'request/getfleet',
timeout: 10000
),
reader:fleetReader
);
然后我创建这个商店的分页版本如下:-
fleetPagedDs = new Ext.data.Store(
proxy: new Ext.ux.data.PagingMemoryProxy(fleetDs.reader.jsonData),
reader: fleetDs.reader,
remoteSort: true
);
有人能告诉我如何在 ExtJS 4 中做到这一点吗?
谢谢。
【问题讨论】:
我正在寻找同样的东西。你能让这个工作吗? 【参考方案1】:你在找Ext.ux.data.PagingMemoryProxy吗?
来自 Sencha 文档:
分页内存代理,允许在内存数据集中使用分页网格。
【讨论】:
不完全是,我想在基于 Json 的代理存储上搭载基于 PagingMemoryProxy 的存储,这样我就不需要每次都从服务器重新读取数据。 您不需要第二家商店。只需使用Ext.Ajax.request
发出您的数据请求,然后使用store.loadData
手动加载您的商店。
感谢您的建议。可能只是我,但是使用来自 Ext.Ajax.request 的数据调用 store.loadData 会使用整个数据集填充存储,而不是尊重启动/限制属性并且不会触发存储上的加载事件。后者不像前者那么重要。
所以,如果我理解正确的话,您本质上是想向服务器发出分页请求,但将每个页面缓存在您的 PagingMemoryProxy 中,而不是每次都回调?
不,我想向服务器发出一个请求以获取完整的数据集,并且基本上将其保存在客户端的内存中。然后对该内存中的客户端数据集发出分页请求。这就是上面代码中使用以前版本的 extjs 实现的效果,而且效果非常好。以上是关于Ext JS 4.2 中的分页内存代理等效技术是啥的主要内容,如果未能解决你的问题,请参考以下文章