先叙述一下问题:
界面是这样的
左侧分类每一个点击都会通过ajax向服务端发送一个请求,这里不太好使用beforeSend来限制用户不可点击,那样体验比较差,所以现在的情况是当用户快速点击同一个或多个时,会重复发送N个请求,当请求返回时导致右侧展示内容混乱。
解决办法:
每一次提交新请求时都断开之前的请求,保证同一时间等待的仅仅是一个ajax请求。
$.ajax、$.get、$.post都有同一个返回值,可以使用对象接收,当请求未返回且想结束这次请求时,只需要针对对象使用abort()方法即可。
var req;
if(req !=null) req.abort();
req = $.ajax({ ... });