同步請求和異步請求的區別,ajax異步請求如何理解


同步請求和異步請求的區別

先解釋一下同步和異步的概念 
同步是指:發送方發出數據后,等接收方發回響應以后才發下一個數據包的通訊方式。 
異步是指:發送方發出數據后,不等接收方發回響應,接着發送下個數據包的通訊方式。

同步通信方式與異步通信的概念 
同步通信方式要求通信雙方以相同的時鍾頻率進行,而且准確協調,通過共享一個單個時鍾或定時脈沖源保證發送方和接收方的准確同步,效率較高; 
異步通信方式不要求雙方同步,收發方可采用各自的時鍾源,雙方遵循異步的通信協議,以字符為數據傳輸單位,發送方傳送字符的時間間隔不確定,發送效率比同步傳送效率低。

使用者用於調用WEB服務的通信選擇:同步或異步。 
使用者可以同步或異步實現服務調用。從使用者的觀點來看,這兩種方式的不同之處在於: 
同步——使用者通過單個線程調用服務;該線程發送請求,在服務運行時阻塞,並且等待響應。 
異步——使用者通過兩個線程調用服務;一個線程發送請求,而另一個單獨的線程接收響應。 
術語同步 和異步 經常與順序 和並發 混淆了。后面的這兩個術語與執行單獨的任務必須遵循的順序有關,而同步和異步 與線程執行單個任務(如調用單個服務)的方式有關。理解同步和異步調用之間的不同的一種很好的方法是考慮崩潰恢復的后果: 
同步——如果使用者在服務運行的過程中阻塞時崩潰了,當它重新啟動時,將無法重新連接到正在進行的調用,所以響應丟失了。使用者必須重復調用過程,並且期望這次不會崩潰。 
異步——如果使用者在發送了請求之后等待響應時崩潰了,當它重新啟動時,可以繼續等待響應,所以響應不會丟失。 
崩潰恢復不是同步和異步調用之間的唯一不同,但是如果您嘗試確定某個調用采用哪一種方式,請考慮每一種調用如何處理崩潰恢復,這通常可以給您一個很好的答案. 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
沒有分啊???

AJAX的核心是客戶端的JavaScript程序能夠實現異步執行,異步執行是相對與同步執行的.同步執行意味着代碼必須順序執行,在此給你舉個例子,你就會明白了!

Line_1
Line_2
Line_3

Line_1必須執行完后,才能執行Line_2.Line_1可能調用的是一個函數,有可能這個函數很復雜,需要運行幾小時能才運算完畢,而這個時候,你必須等,等到Line_1完全執行完畢,你才能執行Line_2,同理,Line_3也是!

異步則不同,還是假定Line_1,要調用的函數要執行幾個小時,而這個時候,你就不必要等Line_1執行完畢才去執行Line_2,同理,Line_3也是!

異步執行中有一個非常特殊的功能,那就是回調.同樣是上面的那個例子,Line_1在調用函數時可以指定函數執行完后要調用的另一個函數.當過了幾個小時后,函數執行完畢了(當然這中意也有可能會出現錯誤),它會發出一個回調命令,這個命令會調用指定的另一個函數,從而通知程序"執行完了".如果可以,還會傳遞一些參數,這些參數可能就是幾個小時以來運算的結果!

不知道我這樣講你有沒有明白!至於AJAX怎么用,如何去解決AJAX出現的問題(比如書簽問題,后退按鈕的問題等),你可以自己去找這方面的資料看看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM