在js中ajax的执行顺序

6 篇文章 0 订阅

 在js中使用ajax请求时需要注意,如果在ajax请求结束后需要继续js方法的操作,需要设置ajax属性

async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

 

async 默认为true:

即如果在js函数中先调用ajax函数再进行其他操作,如函数有返回值,那么需要给ajax设置同步属性!!!

写miniui自定义校验时的血淋淋的教训:

开始时没有添加同步属性,通过ajax请求后台数据校验,然后每次获得的e.isValid属性是变化的,但是 校验中并没有效果显示,提交数据时这个校验结果也是没有效果的,试了大半天,发现是ajax的执行顺序问题,最后加了同步属性之后,效果是正常的显示!!!!!!!

	function isalive(e) {
			var flag=true;
		 	var data = form.getData();
			var site = new mini.get("site");
		 	var datas = {
				bookname : data.bookname
			};
			$.ajax({
				url : "../Selbookbyname",
				type : "post",
				async:false ,//同步
			 	data : mini.encode(datas),
				success : function(result) { //成功操作
				 	if(result.flag){
				 		flag=true;
				 		 e.isValid = false;
				 	}else{
				 		flag=false;
				 		 e.isValid = true;
				 	}
				 	
			 },
				error : function() {
					console.log("发送数据失败");
				}

			});
		 
		 	}
		//名称校验未生效
		function onbooknameValidation(e) {
			   isalive(e)
			 
		}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值