普通的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進行編碼,使用方式:
1
var
enparam = encodeuricomponent(param);
post
向伺服器提交資料用到。
程式示例
同步傳輸模式:
非同步傳輸模式:
ajax 同步和非同步區別?
ajax 同步和非同步區別?我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處...
ajax同步和非同步區別
我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處理。當 ajax 執行完畢才...
Ajax同步和非同步的區別
之前一直在寫jquery 的時候遇到ajax載入資料都需要考慮 執行順序問題。最近的專案用了到ajax同步。這個同步的意思是當js 載入到當前ajax的時候會把頁面裡所有的 停止載入,頁面出去假死狀態,當這個ajax執 行完畢後才會繼續執行其他 頁面假死狀態解除。而非同步則這個ajax 執行中的時候...