jQuery中的ajaxasync同步和异步详解
项⽬中有这样⼀个需求,使⽤ajax加载数据返回页⾯并赋值,然后前端取出该值
这其中涉及到代码的顺序问题,有时后台还未返回数据,但已执⾏后⾯代码,
所以就会造成取不到值jquery滚动条滚动到底部
$.ajax({ type: "post",  url: "admin/PfmOptionRuleItem.do", success: function(data){  $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //②如果①还未从后台返回数据此时执⾏②就获取不到值
Ajax的第⼀个字母是asynchronous的开头字母,这意味着所有的操作都是并⾏的,完成的顺序没有前后关系。
$.ajax()的async参数总是设置成true,这标志着在请求开始后,其他代码依然能够执⾏。
如果把这个选项设置成false,这意味着所有的请求都不再是异步的了,这也会导致浏览器被锁死。
虽然官⽅不建议这么⼲,只是不能⽤太多,否则会造成⽤户体验不佳
举个栗⼦
alert("setp 1"); $.ajax({  url: "admin/PfmOptionRuleItem.do",  async: false,  success: function(data){  alert("hello ajax"); //①  } }); alert("setp 2"); //②
当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,
他会等待在①这个地⽅,不会去向下执⾏②,直到①执⾏完毕
此时依次执⾏顺序为
setp 1
hello ajax
setp 2
如果async为true 则执⾏顺序为
setp 1
setp 2
hello ajax
关于本⽂给⼤家叙述的jQuery中的ajax async同步和异步,全部介绍完了,希望对⼤家有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。