第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

AJAX是什么?如何在JavaScript中使用?

AJAX是什么?如何在JavaScript中使用?

森林海 2019-03-27 15:17:07
AJAX是什么?如何在JavaScript中使用?
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

JavaScript能流行,一個(gè)很重要的原因是AJAX技術(shù)的應(yīng)用。在網(wǎng)頁中有很多的應(yīng)用。舉兩個(gè)常見的AJAX應(yīng)用的例子:
1、 在搜索中,我們輸入關(guān)鍵字時(shí),網(wǎng)頁會(huì)實(shí)時(shí)展現(xiàn)搜索結(jié)果;這是用AJAX實(shí)現(xiàn)的。
2、 使用地圖時(shí),地圖會(huì)根據(jù)用戶顯示的位置不停的更新。這也是通過AJAX實(shí)現(xiàn)。

那么什么是AJAX呢?
AJAX全稱為Asynchronous JavaScript And XML直譯就是異步的JavaScript和XML(這里我們主要介紹下JavaScript中AJAX的應(yīng)用)
通常當(dāng)JavaScript向服務(wù)器發(fā)送請(qǐng)求獲取數(shù)據(jù)時(shí),服務(wù)器會(huì)返回?cái)?shù)據(jù)。在傳統(tǒng)沒有使用AJAX的網(wǎng)頁中,需要刷新頁面使其重新加載。而AJAX可以使網(wǎng)頁在不重新加載頁面的情況下對(duì)網(wǎng)頁的局部進(jìn)行更新。(比如,當(dāng)你要放大地圖的時(shí)候,你會(huì)不斷的向服務(wù)器請(qǐng)求地圖當(dāng)前位置的詳細(xì)信息,服務(wù)器返回?cái)?shù)據(jù)給你,這里我們并不需要重新加載整個(gè)頁面,不然用戶體驗(yàn)就太差了。而是局部更新頁面。)

由于我不可能在這寫一個(gè)地圖這樣復(fù)雜的例子,而為了演示AJAX的使用,我借用了秒秒學(xué)的一個(gè)簡單示例:

// 簡單的AJAX舉例。

// 1: 創(chuàng)建請(qǐng)求變量
var myRequest;

// 瀏覽器的特征檢查。
if (window.XMLHttpRequest) { //若支持,則是火狐、谷歌等瀏覽器。
myRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // 若不支持, 則是IE瀏覽器
myRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

// 2: 為請(qǐng)求添加事件處理代碼。
myRequest.onreadystatechange = function(){
console.log("匿名函數(shù)被調(diào)用!");
console.log(myRequest.readyState);
if (myRequest.readyState === 4) {
var p = document.createElement("p");
var t = document.createTextNode(myRequest.responseText);
p.appendChild(t);
document.getElementById("mainContent").appendChild(p);
}
};

// 3: 配置發(fā)送請(qǐng)求
myRequest.open('GET', 'simple.txt', true);
myRequest.send(null);

//....

使用AJAX主要分三部分,如示例中的
1、 創(chuàng)建請(qǐng)求的變量。
在script文件中,首先聲明XMLHttpRequest對(duì)象,這也是題主說的Ajax的核心。瀏覽器頁面能通過XMLHttpRequest對(duì)象和服務(wù)器進(jìn)行通訊。因?yàn)檫@個(gè)對(duì)象的創(chuàng)建因?yàn)g覽器的不同而有區(qū)別。所以我們要用if語句判斷XMLHttpRequest是否存在。

2、 為請(qǐng)求添加事件處理代碼
創(chuàng)建好XMLHttpRequest對(duì)象后,就可以向服務(wù)器發(fā)送請(qǐng)求了,不過我們首先處理服務(wù)器響應(yīng)的事件。當(dāng)服務(wù)器響應(yīng)后會(huì)觸發(fā)myRequest對(duì)象的onreadystatechange事件。
在onreadystatechange事件中我們看到myRequest調(diào)用了readyState屬性,readyState有4個(gè)值表示目前響應(yīng)所在的階段,各數(shù)值表示如下:
l 1:請(qǐng)求已經(jīng)建立,但是還沒有發(fā)送(還沒有調(diào)用 send())。
l 2:請(qǐng)求已發(fā)送,正在處理中(通?,F(xiàn)在可以從響應(yīng)中獲取內(nèi)容頭)。
l 3:請(qǐng)求在處理中;通常響應(yīng)中已有部分?jǐn)?shù)據(jù)可用了,但是服務(wù)器還沒有完成響應(yīng)的生成。
l 4:響應(yīng)已完成;您可以獲取并使用服務(wù)器的響應(yīng)了。
我們一般只關(guān)心readyState的值為4的情況,表示響應(yīng)已完成。

3、 配置發(fā)送請(qǐng)求
使用open方法配置請(qǐng)求。它有三個(gè)參數(shù):
1、第一個(gè)參數(shù)表示用GET獲取服務(wù)器中的數(shù)據(jù)。
2、第二個(gè)參數(shù)是一個(gè)服務(wù)器地址,這里我們用本地的simple.txt代替,省去創(chuàng)建服務(wù)器的麻煩。
3、第三個(gè)參數(shù)true表示請(qǐng)求是異步的,即當(dāng)請(qǐng)求發(fā)送后,JavaScript不會(huì)為了等待服務(wù)器的響應(yīng)而阻塞,它會(huì)繼續(xù)執(zhí)行后續(xù)代碼。

配置好請(qǐng)求后,用send方法發(fā)送請(qǐng)求,這里給send傳遞的參數(shù)是null,若有其它參數(shù)需要發(fā)送,也可以傳遞給send方法。


查看完整回答
反對(duì) 回復(fù) 2019-03-30
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

AJAX全稱為Asynchronous JavaScript And XML直譯就是異步的JavaScript和XML。

通常當(dāng)JavaScript向服務(wù)器發(fā)送請(qǐng)求獲取數(shù)據(jù)時(shí),服務(wù)器會(huì)返回?cái)?shù)據(jù)。在傳統(tǒng)沒有使用AJAX的網(wǎng)頁中,需要刷新頁面使其重新加載。而AJAX可以使網(wǎng)頁在不重新加載頁面的情況下對(duì)網(wǎng)頁的局部進(jìn)行更新。

使用AJAX主要分三部分:

1、 創(chuàng)建請(qǐng)求的變量。
2、 為請(qǐng)求添加事件處理代碼。
3、 配置發(fā)送請(qǐng)求。

【AJAX舉例】

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

var myRequest;

if (window.XMLHttpRequest) {  

myRequest = new XMLHttpRequest();} 

else if (window.ActiveXObject) { 

myRequest = new ActiveXObject("Microsoft.XMLHTTP");

}

myRequest.onreadystatechange = function(){

console.log("匿名函數(shù)被調(diào)用!");

console.log(myRequest.readyState);

if (myRequest.readyState === 4) {

var p = document.createElement("p");

var t = document.createTextNode(myRequest.responseText);

p.appendChild(t);

document.getElementById("mainContent").appendChild(p);}};

myRequest.open('GET', 'simple.txt', true);

myRequest.send(null);


 


查看完整回答
反對(duì) 回復(fù) 2019-03-30
  • 2 回答
  • 0 關(guān)注
  • 383 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)