4 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
這個(gè)要跟同步的概念一起理解,舉個(gè)同步的例子
就是當(dāng)你瀏覽頁面的時(shí)候,你點(diǎn)擊一個(gè)按鈕或者鏈接,那么這個(gè)界面就會(huì)向服務(wù)器發(fā)送請(qǐng)求,此時(shí)你眼前的界面就是一片空白,直到請(qǐng)求的數(shù)據(jù)返回頁面上才有東西顯示。就是一個(gè)操作要等前一個(gè)做完才可以開始。
而異步則不同,比如一個(gè)注冊(cè)頁面
你填寫名字,密碼,郵箱之類的信息,界面看上去什么都沒有變化,但是其實(shí)你注冊(cè)的這個(gè)界面已經(jīng)向服務(wù)器發(fā)送了一個(gè)請(qǐng)求來驗(yàn)證你的用戶名是否已經(jīng)存在。就是后臺(tái)與界面可以進(jìn)行數(shù)據(jù)交互,而界面則可以繼續(xù)保持一直跟用戶交互而不受影響。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
同步交互:指發(fā)送一個(gè)請(qǐng)求,需要等待返回,然后才能夠發(fā)送下一個(gè)請(qǐng)求,有個(gè)等待過程;
異步交互:指發(fā)送一個(gè)請(qǐng)求,不需要等待返回,隨時(shí)可以再發(fā)送下一個(gè)請(qǐng)求,即不需要等待。 區(qū)別:一個(gè)需要等待,一個(gè)不需要等待,在部分情況下,我們的項(xiàng)目開發(fā)中都會(huì)優(yōu)先選擇不需要等待的異步交互方式。
哪些情況建議使用同步交互呢?比如銀行的轉(zhuǎn)賬系統(tǒng),對(duì)數(shù)據(jù)庫的保存操作等等,都會(huì)使用同步交互操作,其余情況都優(yōu)先使用異步交互。

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
ajxa定義:異步的JavaScript和xml
1、XMLHttpRequst的出現(xiàn)才有了異步處理
2、創(chuàng)建XmlHttpRequest對(duì)象
var request=new XMLHttpRequest();
注意:如果要兼容IE6以下瀏覽器則需要編寫如下代碼
var request;
if(window.XMLRequest){
request=new XMLRequestHttpRequest(); //IE7、IE8、360等
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");//IE5、IE6
}
3、XMLHttpRequest發(fā)送請(qǐng)求
(1)open(method,url,async),參數(shù)的意義如下
method:GET或者POST請(qǐng)求方法
url:相對(duì)地址或者絕對(duì)地址
async:true或者false,默認(rèn)是true,表示異步
(2)send(String)
GET請(qǐng)求無參數(shù),POST請(qǐng)求時(shí)一定要有參數(shù)
舉例A:
request。open("GET",'getDate',true);
request.send();
舉例B:
request.open("POST","getDate",true)
//默認(rèn)是"application/x-www-from"-urlencoden"方式提交,如果是提交文件,則需要修改成為multipart/form-data方式提交
request.setRequestHeader("Content-type","application/x-www-from"-urlencoden");
request.send("name=王二&age=25");
4、XMLHttpRequest取得響應(yīng)
(1)responseText:獲得字符串形式的響應(yīng)數(shù)據(jù)
(2)responseXML:獲得xml形式的響應(yīng)數(shù)據(jù)
(3)status和statusText:以數(shù)字和文本形式返回Http轉(zhuǎn)態(tài)碼
(4)getAllResponseHeader():獲得所以得響應(yīng)報(bào)頭
(5)getResponseHeader():查詢響應(yīng)中的某個(gè)字段的值
(6)readState屬性
"0"請(qǐng)求未初始化,open還未調(diào)用
"1":服務(wù)器連接已經(jīng)建立,open已調(diào)用
"2":請(qǐng)求已接收,也就是接收到頭信息了
"3":請(qǐng)求處理中,也就是接收到響應(yīng)主體了
"4":請(qǐng)求已經(jīng)完成,且響應(yīng)就緒,響應(yīng)完成了

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
jquery$.ajax()同步與異步區(qū)別簡(jiǎn)單來說就是:
1、同步執(zhí)行的話,會(huì)等待后臺(tái)結(jié)果返回,方法才會(huì)繼續(xù)執(zhí)行下一句
2、異步的話,方法不等后臺(tái)返回就會(huì)繼續(xù)執(zhí)行下一句。
舉例說明:
$.ajax()其中有一個(gè)參數(shù)為
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;
}
- 4 回答
- 0 關(guān)注
- 6547 瀏覽
添加回答
舉報(bào)