使用HTTP的同步方式還是異步方式?


同步與異步

同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事 
異步: 請求通過事件觸發->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢 

執行模式

同步執行模式

所謂同步執行模式,是指語句在同步執行模式下,將始終保持對程序流的控制,直至 程序結束。如查詢操作,客戶機上的應用程序在向服務器發出查詢操作的指令后,將 一直等待服務器將查詢結果返回客戶機端,然后才繼續進行下一步操作。
眾所周知,應用程序要從一個大表中刪除所有的記錄將是非常耗時的,如果應用程序 采用的是單線程(thread)同步執行方式,某次刪除工作很可能耽誤其他重要工作的完 成。如果應用程序等待的是遠程任務,那么遠程服務器失敗或網絡故障或一些無法預 知的情況都可能使應用程序無限期地等下去,這是同步執行最大的缺陷。 
但是同步執行模式可以簡化程序編制的復雜性。

異步執行模式 

異步執行模式是指語句在異步執行模式下,各語句執行結束的順序與語句執行開始的順序並不一定相同。例如查詢操作,客戶機上的應用程序在向服務器發出了查詢操作的指令后,將立刻執行查詢語句指令的下一條語句,而不需要等到服務器將查詢結果返回客戶機端。異步執行方式使應用程序能擺脫單個任務的牽制,提高了靈活性和應用程序的執行效率。但異步執行模式也存在一些問題,如它增加了編程的復雜性,特別是編寫互用性(interoperable)要求較高的程序。 

選擇並設置執行模式 在應用程序開發中選擇同步模式還是異步模式,是一個比較復雜的層次。當查詢或對數據庫的修改相對簡單時,同步執行模式是一種很好的選擇,它能夠在幾秒或更少的時間內返回結果數據。另外,在應用程序獲 得結果集前不能繼續執行時,根本不必要使用異步執行模式。在復雜查詢情況下,特別是復雜的多行數據庫的UPDATE 或DELETE 操作,可能需要很長的時間才能完成,需采用異步執行模式,讓用戶可以同時對程序的其他部分進行操作。 


對於一般程序員來說,如果對同步執行模式與異步執行模式不了解,往往會在對服務器發出一個操作語句(查詢或讀取一條記錄等操作)后,立該引用服務器返回的執行結果,或者對該 結果進行下一步操作,這是很危險的。因為,在異步執行模式下,客戶機上的后續語句是在該操作語句發出后接着執行的,但由於各種原因,服務器不一定能執行完該操作語句,並在后續語句執行前將結果返回客戶機。因此,后續語句在引用前一操作語句的執行結果時,往往會因為該執行結果並不存在而引用了錯誤的值,造成系統錯誤或死鎖,所以在實際應用中應根據具體情況慎重選擇執行模式。    

 


免責聲明!

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



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