3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
在開發網頁時,常常會運用到一些非同步的功能,當功能執行完畢時,可能會呼叫某些函式。 例如Ajax就是大家比較常用到的,但是jQuery在Ajax的使用方面較為複雜(巢狀的結構),例如: $.ajax({ url : "test.php", success: function(msg){ alert(msg + " Tom"); } }); 因此jQuery設計了Deferred Object方便這方面的操作 Deferred Object建立 var deferred = $.Deferred(); //也可以建立帶參數的Deferred var deferred = $.Deferred(function(deferred){ alert("Hello"); }); Deferred Object狀態 Deferred Object有三種狀態 Pending:Operation 處理中 Resolve:Operation 處理成功 Reject:Operation 處理失敗 可以利用Deferred.state()查看現在狀態 //Pending alert(deferred.state()); //Resolve deferred.resolve(); alert(deferred.state()); //這裡得到的狀態還是Resolve,因為Deferred已經是處理完成狀態了,無法換成處理失敗狀態 deferred.reject(); alert(deferred.state()); Deferred Object使用方法 var deferred = $.ajax("test.php"); //當Ajax時動作完成時,可以同時執行多個動作 deferred.done(function(msg){ alert(msg + " Tom"); }); deferred.done(function(msg){ alert(msg + " John"); }); Deferred Object $.when() //$.when的意思是,如果兩個ajax都成功,就會執行done,只要其中一個失敗,就會執行fail //$.when的參數只接受Deferred物件 var deferred = $.when($.ajax("test.php"), $.ajax("test2.php")); deferred.done(function(){ alert("成功"); }); deferred.fail(function(){ alert("失敗"); }); Deferred Object $.when() 陣列 //配合apply使用,當陣列的deferred物件都callback後才執行alert $.when.apply(null,[$.getJSON("URL"),$.getJSON("URL"),$.getJSON("URL")]).then(function(){ alert("done"); }); Categories: jQuery 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop Language Go Java JavaScript jQuery jQueryChart Node.js Vue PHP Laravel ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦