1.AJAX 簡介:
AJAX = Asynchronous JavaScript and XML(異步的 JavaScript和 XML)。
AJAX 不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。
AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下。
2.什么是 AJAX ?
AJAX = 異步 JavaScript 和 XML。
AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。
通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。
傳統(tǒng)的網(wǎng)頁(不使用AJAX)如果需要更新內(nèi)容,必需重載整個網(wǎng)頁面。
3.AJAX是基于現(xiàn)有的Internet標(biāo)準(zhǔn)
AJAX是基于現(xiàn)有的Internet標(biāo)準(zhǔn),并且聯(lián)合使用它們:
XMLHttpRequest 對象 (異步的與服務(wù)器交換數(shù)據(jù))
JavaScript/DOM (信息顯示/交互)
CSS (給數(shù)據(jù)定義樣式)
XML (作為轉(zhuǎn)換數(shù)據(jù)的格式)
AJAX應(yīng)用程序與瀏覽器和平臺無關(guān)的!
4.在 2005 年,Google 通過其 Google Suggest 使 AJAX 變得流行起來。
Google Suggest 使用AJAX創(chuàng)造出動態(tài)性極強(qiáng)的web 界面:當(dāng)您在谷歌的搜索框輸入關(guān)鍵字時,avaScript 會把這些字符發(fā)送到服務(wù)器,然后服務(wù)器會返回一個搜索建議的列表。
5.AJAX - 創(chuàng)建 XMLHttpRequest 對象
XMLHttpRequest 是 AJAX 的基礎(chǔ)。
所有現(xiàn)代瀏覽器均支持XMLHttpRequest對象(IE5 和IE6 使用 ActiveXObject)。
XMLHttpRequest用于在后臺與服務(wù)器交換數(shù)據(jù)。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。
6.AJAX - 向服務(wù)器發(fā)送請求請求
XMLHttpRequest 對象用于和服務(wù)器交換數(shù)據(jù)。
如需將請求發(fā)送到服務(wù)器,我們使用XMLHttpRequest對象的 open()和 send()方法:
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
open(*method*,*url*,*async*);
規(guī)定請求的類型、URL 以及是否異步處理請求。
method:請求的類型;GET 或POST
url:文件在服務(wù)器上的位置
async:true(異步)或false(同步)
send(string)
將請求發(fā)送到服務(wù)器。
string:僅用于POST 請求
7.GET 還是 POST?
與POST 相比,GET 更簡單也更快,并且在大部分情況下都能用。
然而,在以下情況中,請使用POST 請求:
無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)
向服務(wù)器發(fā)送大量數(shù)據(jù)(POST沒有數(shù)據(jù)量限制)
發(fā)送包含未知字符的用戶輸入時,POST 比 GET 更穩(wěn)定也更可靠
8.ASP = Active Server Pages
9.AJAX - 服務(wù)器 響應(yīng)
如需獲得來自服務(wù)器的響應(yīng),請使用XMLHttpRequest 對象的 responseText(獲得字符串形式的響應(yīng)數(shù)據(jù)。) 或 responseXML 屬性。(獲得 XML形式的響應(yīng)數(shù)據(jù)。)
responseXML 屬性
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++) {
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
10.AJAX - onreadystatechange 事件
onreadystatechange 事件
當(dāng)請求被發(fā)送到服務(wù)器時,我們需要執(zhí)行一些基于響應(yīng)的任務(wù)。
每當(dāng) readyState改變時,就會觸發(fā)onreadystatechange事件。
readyState屬性存有 XMLHttpRequest 的狀態(tài)信息。
readyState:
存有 XMLHttpRequest 的狀態(tài)。從 0 到 4 發(fā)生變化。
0: 請求未初始化
1: 服務(wù)器連接已建立
2: 請求已接收
3: 請求處理中
4: 請求已完成,且響應(yīng)已就緒
status:
200: "OK"
404: 未找到頁面
11.AJAX ASP/PHP 實(shí)例
AJAX用于創(chuàng)造動態(tài)性更強(qiáng)的應(yīng)用程序。
"onkeyup"事件:在一個input type = ‘text’ 輸入的時候,暫停輸入 就會執(zhí)行onkeyup事件
格式:
ASP:<% ... %>
PHP:<? ... ?>
12.AJAX Database 實(shí)例
AJAX可用來與數(shù)據(jù)庫進(jìn)行動態(tài)通信。
13.ajax的GET方法的數(shù)據(jù)必須在data里面?zhèn)鬏?,不能直接就在url參數(shù)中去寫。
$.ajax({
type:'get',
url:'/app01/index2/',
data:params,
success:success_func,
})
function success_func(){
}