web同步非同步請求

2021-07-24 09:38:26 字數 3584 閱讀 9327

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

向伺服器提交資料用到。

程式示例

同步傳輸模式:

非同步傳輸模式:

同步非同步請求

它提供如下功能 提交資料到web伺服器或者從web伺服器獲得資料 採用html input相同的機制上傳檔案 斷點續傳 簡單訪問http頭 支援cookie 後台執行 ios4.0以上支援 對於請求和響應的gzip支援 支援客戶端證書 支援同步 非同步請求 關於它的介紹網上已經有很多了,該專案有很詳...

Ajax非同步 同步請求

ajax請求最重要的問題是 執行的順序。最長遇到的問題是,我們定義乙個變數接收ajax非同步請求的返回結果,後續 使用,然而後續 在使用時該變數為初始值,始終得不到想要的結果!同步 var email test ptmind.com console.log 1 jquery.ajax console...

http 同步非同步請求

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