jQuery中的ajax async同步和异步详解


Posted in Javascript onSeptember 29, 2015

项目中有这样一个需求,使用ajax加载数据返回页面并赋值,然后前端取出该值

这其中涉及到代码的顺序问题,有时后台还未返回数据,但已执行后面代码,

所以就会造成取不到值

$.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同步和异步,全部介绍完了,希望对大家有所帮助。

Javascript 相关文章推荐
jquery.validate使用攻略 第三部
Jul 01 Javascript
一些javascript一些题目的解析
Dec 25 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 #Javascript
pace.js页面加载进度条插件
Sep 29 #Javascript
js强制把网址设为默认首页
Sep 29 #Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 #Javascript
JQuery实现左右滚动菜单特效
Sep 28 #Javascript
JS动态日期时间的获取方法
Sep 28 #Javascript
js电话号码验证方法
Sep 28 #Javascript
You might like
PHP中的cookie
2006/11/26 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
php取得字符串首字母的方法
2015/03/25 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
毕业生求职自荐书范文
2014/03/27 职场文书
金融事务专业求职信
2014/04/25 职场文书
派出所所长先进事迹
2014/05/19 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
五年级上册复习计划
2015/01/19 职场文书
普宁寺导游词
2015/02/04 职场文书
护士个人年度总结范文
2015/02/13 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python