4 回答

TA貢獻1815條經驗 獲得超6個贊
AJAX中的請求方式以及同步異步的區別請求方式,分為GET與POST:
GET
最為常見的HTTP請求,普通上網瀏覽頁面就是GET。GET方式的參數請求直接跟在URL后,以問號開始。(JS中用window.location.search獲得)。參數可以用encodeURIComponent進行編碼,使用方式:
var EnParam = encodeURIComponent(param);
URL只支持大約2K的長度,即2048字符數;使用GET進行AJAX請求時候會緩存導致出現的頁面不是正確的,一般方法加random參數值;ajax.send(null)。
POST
向服務器提交數據用到。
需要將form表單中的值先取出轉換成字符串,用&符號連接,(同GET傳參數一樣);提交數據量2GB ;使用ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'),處理提交的字符串;ajax.send(strings),這個strings表示form中需要提交的內容,例如a=1&b=2類似這樣的字符串。
同步與異步:
舉個例子:普通B/S模式(同步)AJAX技術(異步)
同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事
異步: 請求通過事件觸發->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢
ajax.open方法中,第3個參數是設同步或者異步。prototype等js類庫一般都默認為異步,即設為true。先說下同步的情況下,js會等待請求返回,獲取status。不需要onreadystatechange事件處理函數。而異步則需要onreadystatechange事件處理,且值為4再正確處理下面的內容。
//同步傳輸模式

TA貢獻1860條經驗 獲得超8個贊
同步交互,就是最常見的click-refresh模式,點一個連接或提交一個表單,然后整個頁面被刷新 異步交互,當前很熱的AJAX就是典型例子,提交請求返回對象是不可見的層,然后用javascripts根據返回數據,改變當前頁面顯示,譬如google map

TA貢獻1828條經驗 獲得超3個贊
jquery$.ajax()同步與異步區別簡單來說就是:
1、同步執行的話,會等待后臺結果返回,方法才會繼續執行下一句
2、異步的話,方法不等后臺返回就會繼續執行下一句。
舉例說明:
$.ajax()其中有一個參數為
async: false,
false為同步
function checkodd(i) {
var returnvalue;
var options = {
type: 'POST',
url: "test.ashx",
data: { "i": i },
async:false,
success: function (result) {
if (result.code > 0) {
returnvalue = "odd";
}
else {
returnvalue = "even";
}
},
dataType: "json",
error: function (result) {
alert("error");
}
};
$.ajax(options);
return returnvalue;
}
添加回答
舉報