jquery的when和Deferred方法

司寇凯
2023-12-01

<span style="font-size:18px;"><script type="text/javascript" src="/js/jquery-1.11.2.js"></script>
<script type="text/javascript">
	jQuery(function($){
		/*当两个异步方法都执行完毕后,执行回调*/
		$.when(ajax1(),ajax2()).done(function(){
			alert("done");
		});
		
		function ajax1(){
			var dtd = $.Deferred();
			$.get("/test/t1").done(function(a,b,c){
				console.dir(a);
                                //异步方法执行完毕,将延迟对象设为完成
				dtd.resolve();
			}); 
			return dtd.promise();
		}
		
		function ajax2(){
			var dtd = $.Deferred();
			$.get("/test/t3").done(function(a,b,c){
				console.dir(a);
				dtd.resolve();
			}); 
			return dtd.promise();
		}
		
	});
</script></span>


记得之前做表单验证的时候,碰到过数据需要异步验证的情况,当时非常的纠结,好像是在回调中执行普通的验证,但是如果多几个异步验证,就麻烦了。
今天了解了一下jq的延迟执行方法,先把这个解决方案记下来,以后了解的更多了,再详细补充。


 类似资料: