創(chuàng)建XMLHtttRequest對(duì)象
創(chuàng)建XMLHtttRequest對(duì)象(針對(duì)mozilla,IE8,FF,IE5,IE5.5,IE6,IE7)
//2、創(chuàng)建XMLHttpRequest對(duì)象
//這其實(shí)是XMLHttpReqest對(duì)象使用最復(fù)雜的一步
//針對(duì)IE和其他類型瀏覽器建立這個(gè)對(duì)象的不同方式寫(xiě)不同的代碼
if(window.XMLHttpRequest){
//針對(duì)firefox,mozillaz,opera,IE7,IE8
xmlhttp = new XMLHttpRequest();
//用于修復(fù)某些Mozillaz瀏覽器bug
if(xmlhttp.overrideMimeType)
{
xmlhttp.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject){
//針對(duì)IE6,IE5.5,IE5
//兩個(gè)都可以創(chuàng)建XMLHttpRequest對(duì)象,保存在js數(shù)組中
var activeName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
//var activeName= ['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0', //'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0', //'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(var i =0;i<activeName.length;i++)
{//取出一個(gè)控件名來(lái)創(chuàng)建XMLHttpRequest對(duì)象,創(chuàng)建成功就終止循環(huán),如果創(chuàng)建失敗可以繼續(xù)創(chuàng)建
//可以拋出異常,繼續(xù)創(chuàng)建
try{
xmlhttp= new ActiveXObject(activeName[i]);
break;
}catch(e){
}
}
}
//確認(rèn)XMLHttpRequest對(duì)象已經(jīng)創(chuàng)建成功
if(!xmlhttp)
{
alert("XmlHttpRequest創(chuàng)建失敗");
return;
}
//3、注冊(cè)回調(diào)函數(shù),函數(shù)名后面不要加括號(hào)
//如果加了括號(hào),就變成了調(diào)用函數(shù),會(huì)把函數(shù)的返回值發(fā)揮給xmlhttp,沒(méi)有達(dá)到我們的目的
xmlhttp.onreadystatechange=callback;
//4、設(shè)置連接信息
//第一個(gè)參數(shù)設(shè)置http請(qǐng)求方式,主要是get和post兩種方式
//第二個(gè)參數(shù)是uri地址
//第三個(gè)參數(shù)表示異步交互還是同步交互方式,true表示異步,false表示同步
xmlhttp.open("GET","/JQuery/servlet/AjaxServlet?name="+username,true);
//5、發(fā)送數(shù)據(jù)開(kāi)始和服務(wù)器端交互
//同步方式下,send這句話會(huì)在服務(wù)器端的數(shù)據(jù)回來(lái)后,才執(zhí)行完
//異步方式下,send會(huì)立即執(zhí)行完
xmlhttp.send(null);
}
//5、寫(xiě)回調(diào)函數(shù)
//回調(diào)函數(shù)
function callback(){
//接收相應(yīng)的相應(yīng)數(shù)據(jù)
//判斷交互狀態(tài)已經(jīng)完成
if(xmlhttp.readyState ==4)
{
//判斷http的交互狀態(tài)
if(xmlhttp.status == 200)
{
//獲取服務(wù)器端返回的數(shù)據(jù)
//獲取服務(wù)器端純文本數(shù)據(jù)
var responseText = xmlhttp.responseText;
//將數(shù)據(jù)顯示在頁(yè)面上
//通過(guò)dom獲取div元素節(jié)點(diǎn)
var divNode =document.getElementById("result");
//設(shè)置元素節(jié)點(diǎn)的html內(nèi)容
divNode.innerHTML=responseText;
}
}
posted on 2009-09-04 21:18 suplayer 閱讀(203) 評(píng)論(0) 編輯 收藏 所屬分類: Ajax