首先是一個(gè)創(chuàng)建AJAX的函數(shù):
復(fù)制代碼 代碼如下:
var http_request=null;
function create_ajax(){
http_request = false;
//開(kāi)始初始化XMLHttpRequest對(duì)象
if(window.XMLHttpRequest) { //Mozilla 瀏覽器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//設(shè)置MiME類(lèi)別
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE瀏覽器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 異常,創(chuàng)建對(duì)象實(shí)例失敗
window.alert("不能創(chuàng)建XMLHttpRequest對(duì)象實(shí)例.");
return false;
}
}
然后是調(diào)用這個(gè)函數(shù)來(lái)處理AJAX
復(fù)制代碼 代碼如下:
var obj1;
function get_ajax(url,obj) {//初始化、指定處理函數(shù)、發(fā)送請(qǐng)求的函數(shù)
obj1=obj;
create_ajax();
http_request.onreadystatechange =processobj; // 確定發(fā)送請(qǐng)求的方式和URL以及是否同步執(zhí)行下段代碼
http_request.open("POST", url, true);
http_request.send(null);
}
function processobj(){
document.getElementById(obj1).innerHTML="Loading...";
if (http_request.readyState == 4) { // 判斷對(duì)象狀態(tài)
if (http_request.status == 200) { // 信息已經(jīng)成功返回,開(kāi)始處理信息
document.getElementById(obj1).innerHTML=http_request.responseText;
} else { //頁(yè)面不正常
document.getElementById(obj1).innerHTML="loading error.";
}
}
}
以上就是AJAX的主體,再在你需要用AJAX的頁(yè)面把這段Javascript包含進(jìn)去,就可以方便的調(diào)用了:
復(fù)制代碼 代碼如下:
script type="text/javascript" src="ajax.js" src="ajax.js" >/script>
Welcome.
div id="d1" onclick="get_ajax('ajax/get1.jsp','d1');">d1/div>
div id="d2" onclick="get_ajax('ajax/get2.jsp','d2');">d2/div>
div id="a">d2/div>
'ajax/get1.jsp'和'ajax/get2.jsp',是兩個(gè)后臺(tái)獲取數(shù)據(jù)的頁(yè)面,這樣,一點(diǎn)擊d1,get1.jsp就會(huì)被動(dòng)態(tài)的加載進(jìn)來(lái),非常方便,當(dāng)然這只是一個(gè)最基本的功能的模型,還可以在上面加上很多功能,大家自由發(fā)揮吧。