搜尋
首頁後端開發php教程同步請求和非同步請求的區別詳解

同步請求和非同步請求的區別詳解

Mar 21, 2018 pm 01:12 PM
差別非同步請求

先解釋一下同步和非同步的概念
同步是指:發送方發出資料後,等接收方發迴回應以後才發下一個資料包的通訊方式。 異步是指:發送方發出資料後,不等接收方發迴回應,接著發送下個資料包的通訊方式。
同步通訊方式與非同步通訊的概念
同步通訊方式要求通訊雙方以相同的時脈頻率進行,而且準確協調,透過共享單一時脈或定時脈衝源保證發送方和接收方的準確同步,效率較高;
非同步通訊方式不要求雙方同步,收發方可採用各自的時鐘來源,雙方遵循非同步的通訊協議,以字元為資料傳輸單位,發送方傳送字元的時間間隔不確定,發送效率比同步傳送效率低。
使用者用於呼叫WEB服務的通訊選擇:同步或非同步。
使用者可以同步或非同步實作服務呼叫。從使用者的觀點來看,這兩種方式的不同之處在於:
同步-使用者透過單一執行緒呼叫服務;該執行緒發送請求,在服務運行時阻塞,並且等待回應。
非同步-使用者透過兩個執行緒呼叫服務;一個執行緒傳送請求,而另一個單獨的執行緒接收回應。
術語同步 和非同步 經常與順序 和並發 混淆了。後面的這兩個術語與執行單獨的任務必須遵循的順序有關,而同步和非同步 與執行緒執行單一任務(如呼叫單一服務)的方式有關。理解同步和非同步呼叫之間的不同的一種很好的方法是考慮崩潰恢復的後果:
同步——如果用戶在服務運行的過程中阻塞時崩潰了,當它重新啟動時,將無法重新連接到正在進行的調用,所以響應丟失了。用戶必須重複呼叫過程,並且期望這次不會崩潰。
非同步-如果使用者在發送了請求之後等待回應時崩潰了,當它重新啟動時,可以繼續等待回應,所以回應不會遺失。
崩潰恢復不是同步和非同步呼叫之間的唯一不同,但是如果您嘗試確定某個呼叫採用哪一種方式,請考慮每一種呼叫如何處理崩潰恢復,這通常可以給您一個很好的答案.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++
在Java Web 開發中使用Ajax 時,重要的是完整瞭解同步和非同步通訊模型的差異(請參閱參考資料)。對非同步通訊模型支援的缺乏,會對客戶端開發、與 Web 框架的整合、標記庫的使用、IDE 的使用以及執行緒的行為有影響。
在同步請求/回應通訊模型中,總是瀏覽器(與 Web 伺服器、應用伺服器或 Web 應用程式相對)發起請求(透過 Web 使用者)。接著,Web 伺服器、應用程式伺服器或 Web 應用程式會回應進入的請求。在處理同步請求/回應對期間,使用者不能繼續使用瀏覽器。
在非同步請求/回應通訊模型中,瀏覽器(透過 Web 使用者)到 Web 伺服器、應用伺服器或 Web 應用程式的通訊(以及反過來)是解耦的。在非同步請求/回應對的處理中,Web 使用者在目前非同步請求被處理時也可以繼續使用瀏覽器。一旦非同步請求處理完成,非同步回應就會被通訊(從 Web 伺服器、應用伺服器或 Web 應用程式)回客戶機頁面。典型情況下,在這個過程中,呼叫對 Web 使用者沒有影響;他們不需要等待回應。
Jquery ajax 中提交資料可以用同步與非同步1、同步與非同步之間究竟有什麼不同呢? 、2、在什麼情況下使用呢? 同步:提交請求->等待伺服器處理->處理完畢返回這個期間客戶端瀏覽器不能幹任何事
異步: 請求透過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢一、我的理解: 1、一心一意:目前只能做一件事,其他事情必須等當前的事情完成,才能繼續後面的事情。 2.三心二意:同時可以做多件事情:左手按著空白鍵,右手可以不斷的擊打滑鼠,眼睛還要同時看著螢幕,很辛苦。 二、請看下面這段腳本: function

ValidateClick()
{ var areaNo=$("#<%=drpList.ClientID %>").val(); if(areaNo) { alert("请选择"); return false; } $.ajax({
cache:"False",
type:"POST", (A)//async: false, 【(A)】
url:"Validate.ashx",
data:$("#form1").serialize(), 
success:function(o)
{ 
if(o=="ERROR") { alert("输入错误!"); return false;} 
else if(o=="OK")
{ alert("正确!");return true; } 
else
{ alert("其他错误!"); return false;}
},
error:function(xhr, ajaxOptions, thrownError)
{ alert("网络异常,稍后重试!"); return false; }
}); // 【(B) 】 //alert("这里");return true;}

 在(A)處:預設未true,表示使用非同步進行傳輸, 當async: true時:我們把資料用POST提交資料到url頁面後,會同時執行【(B) 】處的方法或函數等,不管(A)處是否已經返回結果,(B)已經執行了,當(A)中返回結果時,就根據指定的if來彈出提示, 當async: false時:這個時候就必須等待(A)處回傳結果,再執行if判斷語句,判斷完成之後,在接著執行(B)處的函數。

以上是同步請求和非同步請求的區別詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

您如何從PHP會話中檢索數據?您如何從PHP會話中檢索數據?May 01, 2025 am 12:11 AM

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

您如何使用會議來實施購物車?您如何使用會議來實施購物車?May 01, 2025 am 12:10 AM

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

您如何在PHP中創建和使用接口?您如何在PHP中創建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解釋瞭如何創建,實施和使用PHP中的接口,重點關注其對代碼組織和可維護性的好處。

crypt()和password_hash()有什麼區別?crypt()和password_hash()有什麼區別?Apr 30, 2025 pm 03:39 PM

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

如何防止PHP中的跨站點腳本(XSS)?如何防止PHP中的跨站點腳本(XSS)?Apr 30, 2025 pm 03:38 PM

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。