//伪代码如下function fooClick(){
$('button').prop('disable',true);
$.ajax({
...
async:false, //同步
success: function(){
$('button').prop('disable',false);
...
}, error:funciton(){
$('button').prop('disable',false);
...
}
})
}目的比较简单,点击后button变成不可点击,直到http响应完成,变回可以点击。问题是: 如上代码,当ajax的async属性为false(即同步)时,短时间内快速连续点击3次button(即在第一个ajax还在pending的时候继续点2下button),会依次触发3次ajax请求,当然这3次请求都是等前一个ajax请求响应完成再发起另一次的当我把ajax的async属性变成true(异步)时候,同样短时间内快速连续点击3次button,只会触发一次ajax请求。(这样的效果是我期望的)问题是:为什么同步的情况下,click事情似乎被放进一个堆里面?
添加回答
举报
0/150
提交
取消