Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我点击delete时,ExtJs为每个项目发送多个XHR请求_Javascript_Ajax_Extjs - Fatal编程技术网

Javascript 当我点击delete时,ExtJs为每个项目发送多个XHR请求

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

我有一个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的屏幕截图

这句话:

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


(不过,我同意,像那样只处理一大堆重叠的HTTP事务并不十分明智。)

我也有类似的问题,但我能够通过在数据存储修改后调用onCommitChanges()来解决它。

这个“批处理”标志可能是问题的一部分。删除大量元素,以便您在其间等待响应,这将非常缓慢。如果您将其作为答案写入,我将接受它。我最初添加了它,因为在尝试创建它们时,它会尝试将它们分组到一个具有所有ID的请求中。但我刚把它关掉,它工作得很好!好的-我已经这样做了,但我删除了它,因为它实际上只是一个猜测:-)我担心不希望的行为导致我添加此声明,但它修复了此问题。它仍然会发送单独的请求,但不会对每条记录发送多个请求,这正是我想要的是的,我无法想象在什么情况下这样做是可取的。。哈哈