什么是 AJAX 咬扇?
AJAX = 異步 JavaScript 和 XML甲葬。
AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。
通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換懈贺,AJAX 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新经窖。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新梭灿。
AJAX 工作原理
AJAX是基于現(xiàn)有的Internet標(biāo)準(zhǔn)
AJAX是基于現(xiàn)有的Internet標(biāo)準(zhǔn)画侣,并且聯(lián)合使用它們:
XMLHttpRequest 對(duì)象 (異步的與服務(wù)器交換數(shù)據(jù))
JavaScript/DOM (信息顯示/交互)
CSS (給數(shù)據(jù)定義樣式)
XML (作為轉(zhuǎn)換數(shù)據(jù)的格式)
onreadystatechange 事件
當(dāng)請(qǐng)求被發(fā)送到服務(wù)器時(shí),我們需要執(zhí)行一些基于響應(yīng)的任務(wù)堡妒。
每當(dāng) readyState 改變時(shí)配乱,就會(huì)觸發(fā) onreadystatechange 事件。
readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息皮迟。
幾種常見(jiàn)的狀態(tài)碼:
200 ?OK
請(qǐng)求已成功搬泥,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。
304 Not Modified
如果客戶(hù)端發(fā)送了一個(gè)帶條件的 GET 請(qǐng)求且該請(qǐng)求已被允許伏尼,而文檔的內(nèi)容(自上次訪(fǎng)問(wèn)以來(lái)或者根據(jù)請(qǐng)求的條件)并沒(méi)有改變忿檩,則服務(wù)器應(yīng)當(dāng)返回這個(gè)狀態(tài)碼。304響應(yīng)禁止包含消息體爆阶,因此始終以消息頭后的第一個(gè)空行結(jié)尾燥透。
404 Not Found
請(qǐng)求失敗,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)辨图。沒(méi)有信息能夠告訴用戶(hù)這個(gè)狀況到底是暫時(shí)的還是永久的班套。假如服務(wù)器知道情況的話(huà),應(yīng)當(dāng)使用410狀態(tài)碼來(lái)告知舊資源因?yàn)槟承﹥?nèi)部的配置機(jī)制問(wèn)題徒役,已經(jīng)永久的不可用孽尽,而且沒(méi)有任何可以跳轉(zhuǎn)的地址。404這個(gè)狀態(tài)碼被廣泛應(yīng)用于當(dāng)服務(wù)器不想揭示到底為何請(qǐng)求被拒絕或者沒(méi)有其他適合的響應(yīng)可用的情況下忧勿。出現(xiàn)這個(gè)錯(cuò)誤的最有可能的原因是服務(wù)器端沒(méi)有這個(gè)頁(yè)面杉女。
403 Forbidden
服務(wù)器已經(jīng)理解請(qǐng)求瞻讽,但是拒絕執(zhí)行它。與401響應(yīng)不同的是熏挎,身份驗(yàn)證并不能提供任何幫助速勇,而且這個(gè)請(qǐng)求也不應(yīng)該被重復(fù)提交。如果這不是一個(gè) HEAD 請(qǐng)求坎拐,而且服務(wù)器希望能夠講清楚為何請(qǐng)求不能被執(zhí)行烦磁,那么就應(yīng)該在實(shí)體內(nèi)描述拒絕的原因。當(dāng)然服務(wù)器也可以返回一個(gè)404響應(yīng)哼勇,假如它不希望讓客戶(hù)端獲得任何信息都伪。
502 Bad Gateway
作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無(wú)效的響應(yīng)积担。