当我点击删除时,ExtJs会为每个项目发送多个XHR请求

时间:2011-06-02 19:33:04

标签: javascript ajax extjs

我有一个ExtJs(v3.1)`Ext.grid.GridPanel,可以从其商店加载一些记录并允许编辑。

如果我选择了多个记录,并且我点击删除它会发送多个DELETE请求,则会压倒服务器,最终会删除其中的一些,其余的则返回404。

我不明白为什么它会在第一个请求失败之前发送第二个或第三个请求,它只是没有返回。

这是删除按钮的处理程序

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的屏幕截图

Screenshot of firebug after highlighting 5 records and clicking delete

2 个答案:

答案 0 :(得分:4)

哎呀:

 batch: false, // update each record with an individual XHR request, the server doesnt process batch requests
肯定看起来很可疑......我敢打赌,这就是Ext所做的,因为在发送下一个响应之前实际等待每个响应的速度相当慢。

(但我同意,只是爆发出一大堆重叠的HTTP交易,就像那样非常聪明。)

答案 1 :(得分:0)

我有类似的问题,但是我可以通过在修改商店后调用数据存储上的onCommitChanges()来修复它。