jquery ajax属性async(同步异步)示例


Posted in Javascript onNovember 05, 2013

例1、jquery+ajax/" target="_blank">jquery ajax同步方式

$.ajax({
url : 'test.php',
type : 'post',
async: false,//使用同步的方式,true为异步方式
data : {'act':'addvideo', 'videoname':videoname},//这里使用json对象
success : function(data){
//code here...
},
fail:function(){
//code here...
}
});

例2
//javascript
function test()
{
 var a= 1;
 $.ajax({
  type   : 'GET',
  url    : 'test.php',
  data   : 'page=112',
  success:function(msg)
  {
   alert(msg);
   a= msg;
  }
 })
 alert(a);
}
//test.php
sleef('5'); //休息五分钟
echo 'in';
/*
 这个程序运行情况是  先打印1(a=1) 然后五秒过后 打印 in
 根据这个情况就可以知道 jquery 的ajax的执行流程 
 因为是异步调用
 以前就是这样给一个变量赋值  不管怎么弄都是不对的。最后就发现这个问题
 参数async改为false就为同步调用 当ajax返回结果后程序才继续执行
*/
 

在这里,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)例:
例3
$.ajax({  
          type:"POST", 
         url:"Venue.aspx?act=init", 
           dataType:"html", 
          success:function(result){   //function1()
             f1(); 
             f2(); 
        } 
         failure:function (result) {  
            alert('Failed');  
         }, 
  } 
  function2(); 
 

在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执行function2(),也就是说,在这个时候出现两个线程,我们这里暂且说为function1() 和function2()。
当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),知道function1()部分执行完毕。
注意
同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。
而异步则这个AJAX代码运行中的时候其他代码一样可以运行。
jquery的async:false,这个属性
Javascript 相关文章推荐
javascript 自动转到命名锚记
Jan 10 Javascript
Javascript 设计模式(二) 闭包
May 26 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
Jun 15 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 Javascript
微信小程序云开发如何实现数据库自动备份实现
Aug 16 Javascript
Vue如何将页面导出成PDF文件
Aug 17 Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 #Javascript
Javascript脚本实现静态网页加密实例代码
Nov 05 #Javascript
客户端js性能优化小技巧整理
Nov 05 #Javascript
js倒计时小程序
Nov 05 #Javascript
js实现幻灯片效果(基于jquery插件)
Nov 05 #Javascript
javascript使用location.search的示例
Nov 05 #Javascript
jquery按回车提交数据的代码示例
Nov 05 #Javascript
You might like
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
微信自定义分享php代码分析
2016/11/24 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
JS实现拼图游戏
2021/01/29 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
JS获取当前时间戳方法解析
2020/08/29 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
python 日志 logging模块详细解析
2020/03/31 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
C语言面试题
2013/05/19 面试题
深圳茁壮笔试题
2015/05/28 面试题
计划生育证明书写要求
2014/09/17 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
特岗教师个人总结
2015/02/10 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书