我有一个商店,使用Extjs直接代理从列表中加载了wrt项.
proxy : {
type: 'direct',
api: {
read: bomManagementAction.bomQuickDetails
}
}
Run Code Online (Sandbox Code Playgroud)
并且响应显示在网格面板中.
如果选择了更多的项目,则需要很长时间才能完成,因此如果更长的请求处于待处理状态,并且我们发送了一个简短的请求,那么网格肯定会用后者更新,但是当前一个请求发生时会发生什么然后完成网格将重新更新前一个不可取的网格.我开始知道' autoabort'配置存在于' Ext.data.Connection'类中但不在proxy.direct中...
请帮忙
我在选择性地取消商店负载方面遇到了类似的问题.Ext.Ajax.abort(请求)能够中止请求.但是从商店获取当前请求对象(或更好,请求对象Ext.Ajax.abort需要)非常困难.
最后我得到了这个:
...
if (store.loading && store.lastOperation) {
var requests = Ext.Ajax.requests;
for (id in requests)
if (requests.hasOwnProperty(id) && requests[id].options == store.lastOperation.request) {
Ext.Ajax.abort(requests[id]);
}
}
store.on('beforeload', function(store, operation) {
store.lastOperation = operation;
}, this, { single: true });
store.load();
...
Run Code Online (Sandbox Code Playgroud)
不太好但持久的存储负载可靠地取消.
也许有人可以改变Extjs Direct连接的想法.