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 相关文章推荐
js 模拟气泡屏保效果代码
Jul 10 Javascript
JavaScript游戏之优化篇
Nov 08 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
JS获取字符对应的ASCII码实例
Sep 10 Javascript
Angular中管道操作符(|)的使用方法
Dec 15 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
Feb 24 Javascript
微信小程序自定义底部弹出框功能
Nov 18 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的call_user_func传reference引发的思考
2010/07/23 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
python获取list下标及其值的简单方法
2016/09/12 Python
Python部署web开发程序的几种方法
2017/05/05 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
计算机专业毕业生的自我评价
2013/11/18 职场文书
实习教师自我鉴定
2013/12/09 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
大学生工作求职信
2014/06/23 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
质量整改报告范文
2014/11/08 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
员工担保书范本
2015/09/22 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js