至于今天為什么不繼續(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è)屁。