AJAX的奧秘(1)

至于今天為什么不繼續(xù)學(xué)習(xí)Spring boot呢

嗚嗚嗚因?yàn)槲野l(fā)現(xiàn)我基礎(chǔ)太差了 還是好好學(xué)習(xí)基礎(chǔ)8。

叭叭了個(gè)叭叭叭??

開始學(xué)習(xí)AJAX。

首先要知道XMLHttpRequest 是 AJAX 的基礎(chǔ)(俺知道了?。。。?/p>

XMLHttpRequest 用于在后臺(tái)與服務(wù)器交換數(shù)據(jù)。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。

首先了解創(chuàng)建 XMLHttpRequest 對象的語法:

```

var xmlhttp;

xmlhttp=new XMLHttpRequest();

```

XMLHttpRequest 對象用于和服務(wù)器交換數(shù)據(jù)。

處于 onreadystatechange 事件中的就緒狀態(tài)時(shí)執(zhí)行的函數(shù):

```

xmlhttp.onreadystatechange=function()

? {

? if (xmlhttp.readyState==4 && xmlhttp.status==200)

? ? {

? ? document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

? ? }

? }

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

```

那如果小可愛們要將請求發(fā)送到服務(wù)器,需要使用XMLHttpRequest 對象的 open() 和 send() 方法

```

xmlhttp.open("method","url",async);

```

⑴.method:請求的類型為GET 或 POST

那小可愛們怎么選擇這兩個(gè)類型呢???

與 POST 相比,GET 更簡單也更快,并且在大部分情況下都能用。

然而,在以下情況中,請使用 POST 請求:

? ? ? ? ①無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)

? ? ? ? ②向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)

? ? ? ? ③發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠

⑵.url:文件在服務(wù)器上的位置

⑶.async:true(異步)或 false(同步)----好像都是使用 async=true。

```

xmlhttp.send(string);

```

string:僅用于 POST 請求,GET請求時(shí)不需要啦。

如果要獲得來自服務(wù)器的響應(yīng),需要使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。

responseText獲得字符串形式的響應(yīng)數(shù)據(jù)。

responseXML獲得 XML 形式的響應(yīng)數(shù)據(jù)。

關(guān)于onreadystatechange 事件(話說我才知道404是這樣顯示出來的)

當(dāng)請求被發(fā)送到服務(wù)器時(shí),我們需要執(zhí)行一些基于響應(yīng)的任務(wù)。

每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件。

readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息。

onreadystatechange存儲(chǔ)函數(shù)(或函數(shù)名),每當(dāng) readyState 屬性改變時(shí),就會(huì)調(diào)用該函數(shù)。

readyState存有 XMLHttpRequest 的狀態(tài)。從 0 到 4 發(fā)生變化。

0: 請求未初始化

1: 服務(wù)器連接已建立

2: 請求已接收

3: 請求處理中

4: 請求已完成,且響應(yīng)已就緒

status:

200: "OK"

404: 未找到頁面

啦啦啦啦。

當(dāng)我們的網(wǎng)站上有多個(gè)AJAX任務(wù)時(shí),小可愛們應(yīng)該編寫一個(gè)標(biāo)準(zhǔn)的函數(shù)來創(chuàng)建 XMLHttpRequest 對象,并為每個(gè) AJAX 任務(wù)調(diào)用該函數(shù)。

總之就是寫一個(gè)標(biāo)準(zhǔn)函數(shù)可以創(chuàng)建對象然后可以一直回調(diào)嘻嘻嘻,省事啊胖友們!??!

該函數(shù)調(diào)用應(yīng)該包含 URL 以及發(fā)生 onreadystatechange 事件時(shí)執(zhí)行的任務(wù):

```

<script type="text/javascript">

var xmlhttp;

function loadXMLDoc(url,cfunc)

{

? ? ? xmlhttp=new XMLHttpRequest();

? ? ? xmlhttp.onreadystatechange=cfunc;

? ? ? xmlhttp.open("GET",url,true);

? ? ? xmlhttp.send();

}

function myFunction()

{

loadXMLDoc("/ajax/test.txt",function()

? {

? if (xmlhttp.readyState==4 && xmlhttp.status==200)

? ? {

? ? document.getElementById("div1").innerHTML=xmlhttp.responseText;

? ? }

? });

}

</script>

</head>

<body>

<div id="div1"><h2>注意!</h2></div>

<button type="button" onclick="myFunction()">俺要變身了</button>

```

這樣點(diǎn)擊按鈕后注意!就直接變成俺要變身了嘻嘻(˙︶˙)

今天的學(xué)習(xí)就到此結(jié)束了。

開心

個(gè)屁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容