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 相关文章推荐
Javascript优化技巧(文件瘦身篇)
Jan 28 Javascript
动态加载script文件的两种方法
Aug 15 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
JavaScript编程的10个实用小技巧
Apr 18 Javascript
js中键盘事件实例简析
Jan 10 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
Mar 11 Javascript
关于微信中a链接无法跳转问题
Aug 02 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
Koa代理Http请求的示例代码
Oct 10 Javascript
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
记一次vue-webpack项目优化实践详解
Feb 17 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php把数组值转换成键的方法
2015/07/13 PHP
限制文本框输入N个字符的js代码
2010/05/13 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
结婚典礼证婚词
2014/01/11 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
爱国演讲稿400字
2014/05/07 职场文书
初级党校心得体会
2014/09/11 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
债务追讨律师函
2015/06/24 职场文书
消费者投诉书范文
2015/07/02 职场文书
九九重阳节致辞
2015/07/31 职场文书