我有一个jqgrid,网格从我的服务器获取json格式的数据。
网格有一些blanck单元格,用户可以双击它们,然后发送ajax req,这样服务器更新一个值(当前日期)并重新加载网格,问题就是如果我点击快速2或者更多的单元格,只有第一个单元格的重新加载,如果我刷新我的页面,我的所有数据都被加载,所以我知道所有请求发送正常但是表示网格重新加载,直到lastone完成后才能执行新的请求,关于如何解决它的任何想法?
我最后做了什么: 创建一个像:
的varvar lastRequestXHR;
在我的jqgrid代码上添加:
loadBeforeSend: function (xhr) {
lastRequestXHR = xhr;
},
和我的重装功能:
function refreshGrid() {
if (lastRequestXHR != null) {
lastRequestXHR.abort();
}
jQuery('#scheduledGrid').trigger('reloadGrid');
}
答案 0 :(得分:2)
将每个ajax请求推送到任何变量,并在成功函数中止所有请求。 有些代码如下所示:
requests.push(
$.ajax({
type: 'post',
url: '<any url>',
data: ResponseData,
success: function(data) {
for(var i = 0; i < requests.length; i++)
requests[i].abort();
}
}));
请注意,这将取消所有请求&amp;它在客户端和处理器上的处理程序发送的服务器请求将执行,但客户端不会等待响应。