首页 > 代码库 > JQ Ajax 同步与异步的区别

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代码

 

JQ Ajax 同步与异步的区别