成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

jQuery的ajax鏈式編程方法

blair / 2119人閱讀

摘要:不就是鏈式調用嘛,有何優(yōu)點優(yōu)點一可以清晰指定多個回調函數(shù)試想一下,如果用以前的編程模式,只能這么寫優(yōu)點二為多個操作指定回調函數(shù)用傳統(tǒng)的編程模式,只能重復寫等回調了。

在開發(fā)的過程,經(jīng)常會遇到一些耗時間的操作,比如ajax讀取服務器數(shù)據(jù)(異步操作),遍歷一個很大的數(shù)組(同步操作)。不管是異步操作,還是同步操作,總之就是不能立即得到結果,JS是單線程語音,不能立即得到結果,便會一直等待(阻塞)。

一般的做法就是用回調函數(shù)(callback),即事先定義好一個函數(shù),JS引擎不等待這些耗時的操作,而是繼續(xù)執(zhí)行下面的代碼,等這些耗時操作結束后,回來執(zhí)行事先定義好的那個函數(shù)。如下面的ajax代碼:

$.ajax({
    url: "test.html",
    success: function(){
        console.log("success");
    },
    error: function(){
        console.log("error");
    }
});

但這樣寫不夠強大靈活,也很啰嗦。為此,jQuery1.5版本引入Deferred功能,為處理事件回調提供了更加強大而靈活的編程模式。

$.ajax("test.html")
.done(
    function(){
        console.log("success");
    }
)
.fail(
    function(){
        console.log("error");
    }
);

不就是鏈式調用嘛,有何優(yōu)點?

優(yōu)點一:可以清晰指定多個回調函數(shù)

function fnA(){...}
function fnB(){...}
$.ajax("test.html").done(fnA).done(fnB);

試想一下,如果用以前的編程模式,只能這么寫:

function fnA(){...}
function fnB(){...}
$.ajax({
    url: "test.html",
    success: function(){
        fnA();
        fnB();
    }
});

優(yōu)點二:為多個操作指定回調函數(shù)

$.when($.ajax("test1.html"), $.ajax("test2.html"))
.done(function(){console.log("success");})
.fail(function(){console.log("error");});

用傳統(tǒng)的編程模式,只能重復寫success,error等回調了。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/78248.html

相關文章

  • jquery deferred 對象

    摘要:中文文檔簡單說,對象就是的回調函數(shù)解決方案。為了讓回調函數(shù)的名字統(tǒng)一,便于在中使用。普通操作的回調函數(shù)接口對象的最大優(yōu)點,就是它把這一套回調函數(shù)接口,從操作擴展到了所有操作。指定操作成功時的回調函數(shù)。 參考鏈接 jQuery API中文文檔 jQuery.Deferred jQuery.when jQuery的deferred對象詳解 jQuery deferred 對象的 prom...

    Meathill 評論0 收藏0
  • Javascript異步編程-延遲對象篇

    摘要:上篇文章中講到,使用的方法操作請求,會受到回調函數(shù)嵌套的問題。第一次回調第二次回調內(nèi)部實現(xiàn)上,和都是基于實現(xiàn)的對于多個同時請求,共同執(zhí)行同一個回調函數(shù)這一點上,有一個方法,接受多個對象實例,同時執(zhí)行。 上篇文章中講到,使用jquery的ajax方法操作ajax請求,會受到回調函數(shù)嵌套的問題。當然,jquery團隊也發(fā)現(xiàn)了這個問題,在2011年,也就是jquery 1.5版本之后,jQu...

    callmewhy 評論0 收藏0
  • jQuerydeferred對象詳解

    摘要:通常的做法是,為它們指定回調函數(shù)。簡單說,對象就是的回調函數(shù)解決方案。指定操作成功時的回調函數(shù)指定操作失敗時的回調函數(shù)沒有參數(shù)時,返回一個新的對象,該對象的運行狀態(tài)無法被改變接受參數(shù)時,作用為在參數(shù)對象上部署接口。 轉自:阮一峰:http://www.ruanyifeng.com/blo... 一、什么是deferred對象?開發(fā)網(wǎng)站的過程中,我們經(jīng)常遇到某些耗時很長的javascri...

    lei___ 評論0 收藏0
  • $.when().done().then()用法

    摘要:通常的做法是,為它們指定回調函數(shù)。指定操作成功時的回調函數(shù)指定操作失敗時的回調函數(shù)沒有參數(shù)時,返回一個新的對象,該對象的運行狀態(tài)無法被改變接受參數(shù)時,作用為在參數(shù)對象上部署接口。 jQuery的開發(fā)速度很快,幾乎每半年一個大版本,每兩個月一個小版本。 每個版本都會引入一些新功能。今天我想介紹的,就是從jQuery 1.5.0版本開始引入的一個新功能----deferred對象。 這個功...

    KoreyLee 評論0 收藏0
  • jQuery Deferred對象

    摘要:給普通的操作指定回調函數(shù)對象的最大優(yōu)點,就是它把這一套回調函數(shù)接口,從操作擴展到了所有操作。方法用于指定對象狀態(tài)為已失敗時的回調函數(shù)。執(zhí)行完畢執(zhí)行成功執(zhí)行失敗接收一個或多個對象作為參數(shù),為其指定回調函數(shù)。 什么是deferred對象 開發(fā)網(wǎng)站的過程中,我們經(jīng)常遇到某些耗時很長的javascript操作。其中,既有異步的操作(比如ajax讀取服務器數(shù)據(jù)),也有同步的操作(比如遍歷一個大型...

    baoxl 評論0 收藏0

發(fā)表評論

0條評論

blair

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<