国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

jQuery的ajax鏈式編程方法

blair / 2114人閱讀

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

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

一般的做法就是用回調函數(callback),即事先定義好一個函數,JS引擎不等待這些耗時的操作,而是繼續執行下面的代碼,等這些耗時操作結束后,回來執行事先定義好的那個函數。如下面的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");
    }
);

不就是鏈式調用嘛,有何優點?

優點一:可以清晰指定多個回調函數

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

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

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

優點二:為多個操作指定回調函數

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

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

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

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

相關文章

  • jquery deferred 對象

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

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

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

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

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

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

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

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

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

    baoxl 評論0 收藏0

發表評論

0條評論

blair

|高級講師

TA的文章

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