jQuery Ajax和$.ajax jqXHR實現教程

來源:互聯網
上載者:User

 普通的ajax事件,在開發過程中可能已經寫過一個success,在後續的開發中可能我不想動之前寫的success方法,想要重啟一個success比如下面代碼:

 代碼如下 複製代碼

$('.btn').click(function () {
$.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize(),
success : function (data) {
console.log(data + '1');
},
success : function (data) {
console.log(data + '2');
}
});
});
測試結果是:

{"user":"admin","email":"1054770532@qq.com"}2

我們發現後面的success方法覆蓋了前面的success方法,測試失敗。那麼有沒有能夠寫多個success的方法呢?既然jquery能在全球廣泛的被採用,這點小需求還是能滿足的,這裡就用到了今天的重點:jqXHR,先看一段代碼瞭解什麼事jqXHR

 代碼如下 複製代碼

$('.btn').click(function () {
var jqXHR = $.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize()
});
jqXHR.success(function (data) {
console.log(data + '1');
});
jqXHR.success(function (data) {
console.log(data + '2');
});

});
結果如下:

{"user":"tuisiyuan","email":"1054770532@qq.com"}1
{"user":"tuisiyuan","email":"1054770532@qq.com"}2

由上我們不難發現所謂的jqXHR不過就是$.ajax的傳回值,而且兩個success方法都被順序的執行了。

隨之jquery版本的改善提高,以後jqXHR可能會棄用success,complete,error方法,而改用done,always,fail方法

 代碼如下 複製代碼

$('.btn').click(function () {
var jqXHR = $.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize()
});
  
//done=>success,always=>complete,fail=>error
jqXHR.always(function (data) {
console.log('always:' + data);
}).done(function (data) {
console.log('done:' + data)
});
jqXHR.done(function (data) {
console.log('done:' + data);
});
jqXHR.fail(function (data) {
console.log('fail:' + data);
});

});

jqXHR可以連綴,執行多個done。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.