筆試:Ajax請求總共有多少種Callback
Ajax請求總共有八種Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException
拓展:
關(guān)于ajax的名字
ajax 的全稱是Asynchronous JavaScript and XML,其中,Asynchronous 是異步的意思,它有別于傳統(tǒng)web開發(fā)中采用的同步的方式。
關(guān)于同步和異步
異步傳輸是面向字符的傳輸,它的單位是字符;而同步傳輸是面向比特的傳輸,它的單位是楨,它傳輸?shù)臅r候要求接受方和發(fā)送方的時鐘是保持一致的。
具體來說,異步傳輸是將比特分成小組來進行傳送。一般每個小組是一個8位字符,在每個小組的頭部和尾部都有一個開始位和一個停止位,它在傳送過程中接收方和發(fā)送方的時鐘不要求一致,也就是說,發(fā)送方可以在任何時刻發(fā)送這些小組,而接收方并不知道它什么時候到達。一個最明顯的例子就是計算機鍵盤和主機的通信,按下一個鍵的同時向主機發(fā)送一個8比特位的ASCII代碼,鍵盤可以在任何時刻發(fā)送代碼,這取決于用戶的輸入速度,內(nèi)部的硬件必須能夠在任何時刻接收一個鍵入的字符。這是一個典型的異步傳輸過程。異步傳輸存在一個潛在的問題,即接收方并不知道數(shù)據(jù)會在什么時候到達。在它檢測到數(shù)據(jù)并做出響應(yīng)之前,第一個比特已經(jīng)過去了。這就像有人出乎意料地從后面走上來跟你說話,而你沒來得及反應(yīng)過來,漏掉了最前面的幾個詞。因此,每次異步傳輸?shù)男畔⒍家砸粋起始位開頭,它通知接收方數(shù)據(jù)已經(jīng)到達了,這就給了接收方響應(yīng)、接收和緩存數(shù)據(jù)比特的時間;在傳輸結(jié)束時,一個停止位表示該次傳輸信息的`終止。按照慣例,空閑(沒有傳送數(shù)據(jù))的線路實際攜帶著一個代表二進制1的信號。步傳輸?shù)拈_始位使信號變成0,其他的比特位使信號隨傳輸?shù)臄?shù)據(jù)信息而變化。最后,停止位使信號重新變回1,該信號一直保持到下一個開始位到達。例如在鍵盤上數(shù)字“1”,按照8比特位的擴展ASCII編碼,將發(fā)送“00110001”,同時需要在8比特位的前面加一個起始位,后面一個停止位。
同步傳輸?shù)谋忍胤纸M要大得多。它不是獨立地發(fā)送每個字符,每個字符都有自己的開始位和停止位,而是把它們組合起來一起發(fā)送。我們將這些組合稱為數(shù)據(jù)幀,或簡稱為幀。
數(shù)據(jù)幀的第一部分包含一組同步字符,它是一個獨特的比特組合,類似于前面提到的起始位,用于通知接收方一個幀已經(jīng)到達,但它同時還能確保接收方的采樣速度和比特的到達速度保持一致,使收發(fā)雙方進入同步。
幀的最后一部分是一個幀結(jié)束標記。與同步字符一樣,它也是一個獨特的比特串,類似于前面提到的停止位,用于表示在下一幀開始之前沒有別的即將到達的數(shù)據(jù)了。
同步傳輸通常要比異步傳輸快速得多。接收方不必對每個字符進行開始和停止的操作。一旦檢測到幀同步字符,它就在接下來的數(shù)據(jù)到達時接收它們。另外,同步傳輸?shù)拈_銷也比較少。例如,一個典型的幀可能有500字節(jié)(即4000比特)的數(shù)據(jù),其中可能只包含100比特的開銷。這時,增加的比特位使傳輸?shù)谋忍乜倲?shù)增加2.5%,這與異步傳輸中25 %的增值要小得多。隨著數(shù)據(jù)幀中實際數(shù)據(jù)比特位的增加,開銷比特所占的百分比將相應(yīng)地減少。但是,數(shù)據(jù)比特位越長,緩存數(shù)據(jù)所需要的緩沖區(qū)也越大,這就限制了一個幀的大小。另外,幀越大,它占據(jù)傳輸媒體的連續(xù)時間也越長。在極端的情況下,這將導(dǎo)致其他用戶等得太久。
個小時,在這10個小時內(nèi)水沒有完全斷,只是流量比原來小了很多,在10個小時后恢復(fù)正常流量,那么,如果是你你會選擇哪種方式呢?顯然是后者。
【筆試:Ajax請求總共有多少種Callback】相關(guān)文章:
AJAX請求類實例代碼11-10
AJax筆試題01-14
關(guān)于用ajax請求數(shù)據(jù)遇到問題的解決方法11-10
求職筆試技巧知多少09-03
Node.js如何響應(yīng)Ajax的POST請求并且保存為JSON文件詳解11-10
AJAX的特點11-10
ajax詳細解釋11-10