普通的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
向伺服器提交資料用到。
程式示例
同步傳輸模式:
非同步傳輸模式:
同步非同步請求
它提供如下功能 提交資料到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請求中發給伺服器。而且,一旦傳送出去,整個頁面就會全部重新整理,重...