在前端开发中,很多都需要考虑用户体验,就在本文即将介绍的ajax就需要值得考虑:用户不太懂网站,点了按钮后,如果网速慢了会反应特别慢,就怕用户连续点击按钮造成客户端向服务器发送了一次又一次的ajax请求,浪费了服务器的资源。
在百度上搜索了半天,开始的时候是搜索jquery中ajax的当前状态如何获取,想通过每次ajax请求之前来判断当前ajax的状态来控制再次的ajax请求,在网上看了好多的教程,自己也测试了好多,都没啥用!这里不得不再报怨一句,搜索引擎里搜索出来的文章可真是天下一大抄啊!
不说废话了,来看测试后总结出来的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <script language="javascript"> var ajaxstate=false; $(function(){ $(document).ajaxStart(function(){ $("#Con").html("数据加载中"); }).ajaxStop(function(evt,request,settings){ ajaxstate=false; }); }); $.ajaxSetup({ global:true, type: "POST", cache:false, async:true, beforeSend:function(e,xhr){ if(ajaxstate){ alert("上次请求尚未完成,不能请求"+xhr.url); return false; } ajaxstate=true; }, error:function(a,b,c){ alert(b+":"+c+"\n\n"+"请重新登录:www.npm8.com"); $("#R").html(b+":"+c+a+" "+"请重新登录:www.npm8.com"); } }); </script>
|
大家可以根据上面提供的代码,自己改编一下在本地进行测试,当连续俩次ajax请求时,第二次请求就会弹出提示框的!