Javascript 当我点击delete时,ExtJs为每个项目发送多个XHR请求
我有一个ExtJs(v3.1)`Ext.grid.GridPanel,它从存储中加载一些记录并允许编辑 如果我选择多个记录,然后单击delete按钮,它会发送多个删除请求,覆盖服务器,最终删除其中一些记录,其余的返回404 我不明白为什么它在第一个请求失败之前发送第二个或第三个请求,它只是没有返回 这是删除按钮的处理程序Javascript 当我点击delete时,ExtJs为每个项目发送多个XHR请求,javascript,ajax,extjs,Javascript,Ajax,Extjs,我有一个ExtJs(v3.1)`Ext.grid.GridPanel,它从存储中加载一些记录并允许编辑 如果我选择多个记录,然后单击delete按钮,它会发送多个删除请求,覆盖服务器,最终删除其中一些记录,其余的返回404 我不明白为什么它在第一个请求失败之前发送第二个或第三个请求,它只是没有返回 这是删除按钮的处理程序 function onDelete() { var recs = userGrid.getSelectionModel().getSelections(); userGri
function onDelete() {
var recs = userGrid.getSelectionModel().getSelections();
userGrid.store.remove(recs); //delete multiple selections one at a time
}
这家商店是基于
// Typical Store collecting the Proxy, Reader and Writer together
var store = new Ext.data.GroupingStore({
proxy: proxy,
reader: reader,
writer: writer,
sortInfo: { // Default sort by day decsending grouped by week
field: 'day',
direction: "DSC"
}, groupField: 'week',
batch: false, // update each record with an individual XHR request, the server doesnt process batch requests
});
这是我突出显示5条记录并单击删除后firebug的屏幕截图
这句话:
batch: false, // update each record with an individual XHR request, the server doesnt process batch requests
当然看起来很可疑。。。我打赌Ext就是这么做的,因为在发送下一个响应之前,等待每个响应的速度相当慢
(不过,我同意,像那样只处理一大堆重叠的HTTP事务并不十分明智。)我也有类似的问题,但我能够通过在数据存储修改后调用onCommitChanges()来解决它。这个“批处理”标志可能是问题的一部分。删除大量元素,以便您在其间等待响应,这将非常缓慢。如果您将其作为答案写入,我将接受它。我最初添加了它,因为在尝试创建它们时,它会尝试将它们分组到一个具有所有ID的请求中。但我刚把它关掉,它工作得很好!好的-我已经这样做了,但我删除了它,因为它实际上只是一个猜测:-)我担心不希望的行为导致我添加此声明,但它修复了此问题。它仍然会发送单独的请求,但不会对每条记录发送多个请求,这正是我想要的是的,我无法想象在什么情况下这样做是可取的。。哈哈