码迷,mamicode.com
首页 > Web开发 > 详细

Ajax异步&同步请求

时间:2015-05-04 22:18:46      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:ajax异步同步请求   async true   async false   

一、简介

Ajax请求最重要的问题是代码执行的顺序。最长遇到的问题是,我们定义一个变量接收ajax异步请求的返回结果,后续代码使用,然而后续代码在使用时该变量为初始值,始终得不到想要的结果!!!

二、示例

// 同步
var  email = "test@ptmind.com";
console.log(1);
jQuery.ajax({
	url: "/invite/sendEmailAjax.pt",
	type: "post",
	dataType: "text",
	async: true,
	data: "inviteEmails="+email,
	success: function(data){
		console.log(2);
	}
});
console.log(3);
// 结果:1->3->2

// 异步
var  email = "test@ptmind.com";
console.log(1);
jQuery.ajax({
	url: "/invite/sendEmailAjax.pt",
	type: "post",
	dataType: "text",
	async: false,
	data: "inviteEmails="+email,
	success: function(data){
		console.log(2);
	}
});
console.log(3);
// 结果:1->2->3

三、官方解释

By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

sync. 默认是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

四、参考URL

http://api.jquery.com/jQuery.ajax/


Ajax异步&同步请求

标签:ajax异步同步请求   async true   async false   

原文地址:http://blog.csdn.net/ligang2585116/article/details/45484619

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!