HTTP請求中同步與非同步有什麼不同

2021-06-25 07:08:20 字數 3551 閱讀 7525

普通的b/s模式就是同步,而ajax技術就是非同步,當然xmlhttpreques有同步的選項。

同步:提交請求->等待伺服器處理->處理完畢返回。這個期間客戶端瀏覽器不能幹任何事。

非同步: 請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢。

舉個生動的例子吧:

同步就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯。

非同步就是你叫我,然後自己去吃飯,我得到訊息後可能立即走,也可能等到下班才去吃飯。

所以,要我請你吃飯就用同步的方法,要請我吃飯就用非同步的方法,這樣你可以省錢。

再舉個例子,打**時同步,發簡訊是非同步。

ajax的open()方法

用法:open(http-method,url,async,userid,password)

後面是帳號和密碼,在禁止匿名訪問的http頁面中,需要使用者名稱和口令。

ajax.open方法中,第3個引數是設同步或者非同步。prototype等js類庫一般都預設為非同步,即設為true。 先說下同步的情況下,js會等待請求返回,獲取status。不需要onreadystatechange事件處理函式。 而非同步則需要onreadystatechange事件處理,且值為4再正確處理下面的內容。

首先看看非同步處理方式。

其中async是乙個布林值。如果是非同步通訊方式(true),客戶機就不等待伺服器的響應;如果是同步方式(false),客戶機就要等到伺服器返回訊息後才去執行其他操作。我們需要根據實際需要來指定同步方式,在某些頁面中,可能會發出多個請求,甚至是有組織有計畫有隊形大規模的高強度的request,而後乙個是會覆蓋前乙個的,這個時候當然要指定同步方式:flase。

請求方式

get

最為常見的http請求,普通上網瀏覽頁面就是get。get方式的引數請求直接跟在url後,以問號開始。(js中用window.location.search獲得)。引數可以用encodeuricomponent進行編碼,使用方式:

1varenparam = encodeuricomponent(param);

post

向伺服器提交資料用到。

程式示例

同步傳輸模式:

非同步傳輸模式:

非同步與同步http請求

非同步請求 nsmutabledata buf nsmutabledata alloc initwithlength 0 nsurlconnection connection nsurlconnection alloc initwithrequest req delegate self 收到響應時,...

http 同步非同步請求

在使用者互動模式下,當你改變表單中某個元件的值時,譬如你填寫名字 修改性別 選擇愛好的時候,瀏覽器和服 務器至今沒有發生任何互動,只有當你點選submit的時候,瀏覽器才會把你的引數,也就是form表單中各元件的值,打包成乙個http請求中發給伺服器。而且,一旦傳送出去,整個頁面就會全部重新整理,重...

Http同步和非同步請求區別

舉個例子 同步就是你叫我去吃飯,我聽到了就和你去吃飯 如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯。非同步就是你叫我,然後自己去吃飯,我得到訊息後可能立即走,也可能等到下班才去吃飯。所以,要我請你吃飯就用同步的方法,要請我吃飯就用非同步的方法,這樣你可以省錢。請求方式,分為get與p...