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编程起步(第六课)
Feb 27 Javascript
jQuery 渐变下拉菜单
Dec 15 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
Mar 16 Javascript
裁剪字符串trim()自定义改进版
Apr 10 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
vue.js数据绑定操作详解
Apr 23 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
Aug 31 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 Javascript
小程序自定义轮播图圆点组件
Jun 25 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
PHP生成Flash动画的实现代码
2010/03/12 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
php数组查找函数总结
2014/11/18 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
php pdo操作数据库示例
2017/03/10 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
js对象基础实例分析
2015/01/13 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
javascript简易画板开发
2020/04/12 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
进步之星获奖感言
2014/02/22 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python