jquery ajax 请求小技巧实例分析
本文实例讲述了jqueryajax请求小技巧。分享给大家供大家参考,具体如下:
jquery 是一个非常好用的js框架,它为我们提供了很多工具。启动异步请求就是很好用的一个工具
官方推荐的ajax请求格式
$.ajax({ url:"http://xxxxxxxxxxxxxxxxx/",//你的域名 dataType:"json",//对服务器返回的结果进行该数据格式处理我这里写了json也可以红xml、text、html等格式 type:"get',//请求到服务器的方式我这里是get也可以用其它形式如post beforeSend:function(res){},//在请求之前会调用这个方法其中的res就是XMLHttpRequest对象 success:function(result){}//服务器返回的数据进行dataTyoe设置的格式处理后返回的结果 })
在这其中,$.ajax() 方法中传入的数据是一个json 这不难发现吧。 那我们完全可以这样去调用
varajaxJson={ url:"http://xxxxxxxxxxxxxxxxx/", dataType:"json", type:"get', beforeSend:function(res){},//在请求之前会调用这个方法其中的res就是XMLHttpRequest对象 success:function(result){} } $.ajax(ajaxJson);//这样去使用。
如果我们想用户在某一个时刻只进行一个请求,而不会产生多余的请求怎么办呢?
在ajax前面添加一个判定。
varajax_oper={ ajax_status:true,//当前ajax执行状态 ajax_json:function(ajaxJson){ if(!this.ajax_status)returnfalse;//当这个条件成立的时候,就认为当前有一个正在执行的ajax操作 $.ajax(ajaxJson); } }
然后我们在ajaxJson变量中添加如下配置
varajaxJson={ url:"http://xxxxxxxxxxxxxxxxx/", dataType:"json", type:"get', beforeSend:function(res){ ajax_oper.ajax_status=false; }, success:function(result){ ajax_oper.ajax_status=true; } } $.ajax(ajaxJson);
这样就可以在每次请求的时候判定一下当前是否有正在执行的ajax请求如果有就返回,不去执行。如果没有就执行。当一个ajax执行完毕后我们将ajax_oper的状态调整回来等待下一次请求的进行更改。
当然在移动web开发当中touch事件有点违背原理,我们在测试的时候发现,在同一时间。touch事件被触发了多次,并且产生了多个ajax请求。更改ajax_status并没有起到作用,分析的方案是touch事件灵敏到了,连ajax_oper的状态还没更改就已经被触发了多次,也就是在统一时间多个ajax请求都在执行$.ajax方法。这种解决方案,第一就是更改touch事件为click事件,第二就是添加多个ajax_oper状态,层层判定(也有点不保险哈),第三就是更改后台逻辑处理,如在数据库处理的时候添加触发器,每次在更改的时候触发器会先处理一次,然后根据触发器的处理执行相应的处理。 对了,提示一下,在mysqlinnodb表事务处理过程中 也是会触发触发器的。根据结果进行commit和rollback。
更多关于jQuery相关内容可查看本站专题:《jquery中Ajax用法总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。