ajax中同步和非同步的區別

2021-06-22 12:32:18 字數 3550 閱讀 9711

普通的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

向伺服器提交資料用到。

程式示例

同步傳輸模式:

非同步傳輸模式:

ajax 同步和非同步區別?

ajax 同步和非同步區別?我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處...

ajax同步和非同步區別

我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處理。當 ajax 執行完畢才...

Ajax同步和非同步的區別

之前一直在寫jquery 的時候遇到ajax載入資料都需要考慮 執行順序問題。最近的專案用了到ajax同步。這個同步的意思是當js 載入到當前ajax的時候會把頁面裡所有的 停止載入,頁面出去假死狀態,當這個ajax執 行完畢後才會繼續執行其他 頁面假死狀態解除。而非同步則這個ajax 執行中的時候...