在jsp页面中,当用户单击按钮时,会触发ajax调用。 如果用户一次又一次地点击按钮,我只会认为最后一次ajax调用是有效的,只考虑其响应。
我用:
var lastRequest=null;
$('#button').click(function() {
if (lastRequest) {
lastRequest.abort();
lastRequest = null;
}
lastRequest = $.ajax({
type: "POST",
url: "MyAction.do",
success: function (response) {
response= $('<div/>').append(response);
}
});
});
使用Firebug,我看到一些请求被中止,但不是全部。 我认为如果触发ajax调用,则无法忽略响应,是吗?
修改
如果我在MyAction.do中设置了一个var并且我在成功回调中读取了它,那么成功回调是否可能存在冲突?
如果我怎么能阻止这种行为?
答案 0 :(得分:0)
我在中止ajax调用方面的经验是,它可以在工作时非常随机。
我使用过一次或两次的解决方法是计数器:
var lastRequest=null;
var started = 0, finished = 0;
$('#button').click(function() {
++started;
lastRequest = $.ajax({
type: "POST",
url: "MyAction.do",
success: function (response) {
//Only do stuff on the last active request
if(++finished == started)
response= $('<div/>').append(response);
}
});
});
答案 1 :(得分:0)
使用object.abort()
来丢弃服务调用的数据
我添加了代码,点击按钮中止服务,你可以根据你的情况尝试:)
lastRequest = $.ajax({
type: "POST",
url: "MyAction.do",
success: function (response) {
response= $('<div/>').append(response);
}
});
});
$(document).click(function() {lastRequest.abort() });