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实例教程(19) 使用HoTMetal(6)
Dec 23 Javascript
尽可能写"友好"的"Javascript"代码
Jan 09 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
javascript操作css属性
Dec 30 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
理解JavaScript事件对象
Jan 25 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
使用php实现截取指定长度
2013/08/06 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
基于pip install django失败时的解决方法
2018/06/12 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Python编程中类与类的关系详解
2019/08/08 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python调用百度API实现人脸识别
2020/11/17 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
JAVA代码查错题
2014/10/10 面试题
打架检讨书400字
2014/01/17 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
如何利用pygame实现打飞机小游戏
2021/05/30 Python
详解Spring事件发布与监听机制
2021/06/30 Java/Android
Nginx的基本概念和原理
2022/03/21 Servers
Python中requests库的用法详解
2022/06/05 Python