$.Ajax的async:false/true的区别

做项目中碰到一个$.ajax弹屏提醒业务,发现前台框架的提示功能发现没有作用了,只有alert()才能弹屏。查找了一下源码发现

是同步和异步导致的。为了防止以后犯同样的错误。特此记录下!

jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。而异步则这个AJAX代码运行中的时候其他代码一样可以运行。

下面看下代码:

$('#btn').click(function(){
		obj1={
				"smstemplateNo":1
		};
		$.ajax({
			url : "<%=request.getContextPath()%>/web/expantion/common/sms/sendBatchSms",
			type: "POST",
			dataType: 'text',
		    async: true,
		    contentType:'application/json;charset=UTF-8', 
		    data: JSON.stringify(obj1),
		    success:function(res){
	        	alert('success')
	      	},error:function(err){
	        	console.log('err')
	      	}
		})
		alert('after click');
	});

结果:

当async设置为true时,点击按钮后,会先alert(‘after click’),之后请求完毕才会alert(‘success’)。 
当async设置为false时,点击按钮后,则会造成阻塞,阻止下面的代码执行,只有执行完ajax请求,才会去执行后面的代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值