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