AJAX,即"Asynchronous JavaScript And XML"的縮寫,可翻譯為異步JavaScript及XML技術(shù)。其核心是一個(gè)寄宿在瀏覽器中名為XMLHTTPRequest的類。通過此類,可以做到無需提交表單就可以實(shí)現(xiàn)與服務(wù)器的連接;無需刷新整個(gè)頁面,就可以動(dòng)態(tài)更新頁面中一部分的內(nèi)容。
XMLHTTPRequest通常使用XML作為數(shù)據(jù)交換的載體,但也可使用其他的載體,如純文本。簡單來說,就是通過XMLHTTPRequest發(fā)送信息給服務(wù)器,異步接收服務(wù)器處理并返回信息,然后通過JavaScript動(dòng)態(tài)更新頁面的部分內(nèi)容。
盡管AJAX近來非?;鸨?,但AJAX并非新的技術(shù),正如其名所示,只不過是JavaScript加上XML的技術(shù)罷了。而且使用上非常簡單。
應(yīng)用AJAX的流程:
1、定義一個(gè)事件處理器 2、獲取XMLHTTPRequest,并將事件處理器注冊(cè)給它 3、與服務(wù)器連接 4、發(fā)送信息 5、服務(wù)器返回處理完畢的信息 6、每當(dāng)XMLHTTPRequest的狀態(tài)發(fā)生變化,自動(dòng)觸發(fā)事件處理器 7、事件處理器動(dòng)態(tài)更新頁面
本文通過一個(gè)簡單的例子來說明如何在IE6中使用AJAX技術(shù)。在這例子中,客戶端每隔十秒,從服務(wù)器端取回一個(gè)隨機(jī)的字符串,在不重新刷新頁情況下,自動(dòng)更新部分頁面內(nèi)容。例子僅用到了兩個(gè)jsp文件,client.jsp及server.jsp。為了方便說明,我用server.jsp來代替本應(yīng)作為Servlet的Server.java。
先看client.jsp內(nèi)容:
"http://www.w3.org/TR/html4/loose.dtd">
AJAX例子
加載頁面時(shí),將調(diào)用JavaScript的getGiftFromServer()函數(shù),此函數(shù)完成了上面所提的應(yīng)用AJAX的流程中第1至第4步,同時(shí)設(shè)定了一個(gè)每隔十秒自動(dòng)調(diào)用此函數(shù)的定時(shí)器。而showGift()函數(shù)完成所提流程中的第5至第7步。下面詳細(xì)說明每一步驟。
1、定義事件處理器,此處理器將在服務(wù)器端返回?cái)?shù)據(jù)時(shí)自動(dòng)被觸發(fā)執(zhí)行。
function showGift() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
document.getElementById("output").innerHTML = "Time is for " + xmlHttp.responseText + ".";
}
}
因?yàn)槲覀冞@里使用異步,readyState屬性用來判斷服務(wù)器返回信息的狀態(tài)。其值是一個(gè)從0至4的整數(shù),對(duì)應(yīng)于:
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇