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 相关文章推荐
prototype 中文参数乱码解决方案
Nov 09 Javascript
node.js中的socket.io入门实例
Apr 26 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
js实现水平滚动菜单导航
Jul 21 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
Koa 使用小技巧(小结)
Oct 22 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 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
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
PHP积分兑换接口实例
2015/02/09 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
DEFER怎么用?
2006/07/01 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
Node.js实现文件上传
2016/07/05 Javascript
javascript简易画板开发
2020/04/12 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
Python中的流程控制详解
2021/02/18 Python
贸易跟单员英文求职信
2014/04/19 职场文书
市场营销工作计划书
2014/05/06 职场文书
技能比武方案
2014/05/21 职场文书
通信工程专业求职信
2014/06/04 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014司机年终工作总结
2014/12/05 职场文书
运动会三级跳加油稿
2015/07/21 职场文书