JQ Ajax 同步与异步的区别

$.ajax({  
	        url: xml_addr,  
	        type: 'get',  
	        dataType: 'xml',  
	        timeout: 1000,  //设定超时  
	        cache: false,   //禁用缓存  
	        async:false,//同步(保证配置取出再执行其他的代码)
	        error: function(xml) {  
	        	console.log("读取xml出错");
	        },  
	        success:function(xml)
	        {
	        	$(xml).find("server").each(function(i) {     //查找所有student节点并遍历  
	                var index = $(this).children("index");          //获得子节点  
	                var child = $(this).children("child");  //获取节点的属性  
	                server_josn={"index":index.text(),"child":child.text()};
	            });  
	        }//设置成功后回调函数  

  

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

ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据。

一、async值为true (异步)

当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)

二、async值为false (同步)

当执行当前AJAX的时候会停止执行后面的JS代码,直到AJAX执行完毕后时,才能继续执行后面的JS代码

原文地址:https://www.cnblogs.com/lbonet/p/7115900.html