資源描述:
《第11章 php與ajax》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第11章PHP與AJAX11.1AJAX基礎(chǔ)11.2PHP與AJAX交互11.1AJAX基礎(chǔ)11.1.1AJAX的工作原理傳統(tǒng)Web應(yīng)用允許用戶(hù)填寫(xiě)表單,當(dāng)提交表單時(shí)向Web服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然后返回一個(gè)新的網(wǎng)頁(yè)到用戶(hù)瀏覽器。如圖11.1所示為傳統(tǒng)Web應(yīng)用的工作原理。11.1.1AJAX的工作原理與傳統(tǒng)Web應(yīng)用不同的是,AJAX采用異步交互過(guò)程。AJAX可以?xún)H向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)或其他一些基于XML的WebService接口,并在客戶(hù)端采用JavaScript處理來(lái)自服務(wù)
2、器的響應(yīng)。用戶(hù)在頁(yè)面上獲得的數(shù)據(jù)是通過(guò)AJAX引擎提供的,由于頁(yè)面不需要與服務(wù)器直接交互,所以客戶(hù)端瀏覽器不需要刷新頁(yè)面就能獲得服務(wù)器的信息,提高了頁(yè)面的友好度。如圖11.2所示為AJAX引擎的工作原理。11.1.2AJAX初始化不同的瀏覽器使用不同的方法來(lái)創(chuàng)建XMLHttpRequest對(duì)象。InternetExplorer使用ActiveXObject。其他瀏覽器使用名為XMLHttpRequest的JavaScript內(nèi)建對(duì)象。例如,以下代碼將創(chuàng)建一個(gè)XMLHttpRequest對(duì)象:11.1.2AJAX初始化微軟最新版本的Msxml2.XMLHTTP組件在InternetExplorer6中可用。如果要使用它來(lái)創(chuàng)建XMLHttpRequest對(duì)象,可以使用代碼。11.1.3發(fā)送HTTP請(qǐng)求open()方法的作用是建立對(duì)服務(wù)器的調(diào)用。語(yǔ)法格式如下:XMLHttp.open("method","url"[,flag])說(shuō)明:method參數(shù)可以是GET或POST,對(duì)應(yīng)表單的GET和POST方法。open()方法調(diào)用完后要調(diào)用send()方法,send()方法的作用是向服務(wù)器發(fā)送請(qǐng)求,語(yǔ)法格式如下:
5、XMLHttp.send(content)send()方法的參數(shù)如果是以GET方式發(fā)出,可以是任何想要傳送給服務(wù)器的內(nèi)容。11.1.4指定響應(yīng)處理函數(shù)發(fā)送服務(wù)器請(qǐng)求后,需要指定當(dāng)服務(wù)器返回信息時(shí)客戶(hù)端的處理方式。這時(shí)只要將相應(yīng)的處理函數(shù)的名稱(chēng)賦給XMLHttpRequest對(duì)象的onreadystatechange屬性即可。每當(dāng)狀態(tài)改變時(shí)都會(huì)觸發(fā)這個(gè)事件處理器,通常會(huì)調(diào)用一個(gè)JavaScript函數(shù)。例如:XMLHttp.onreadystatechange=function_nameXMLHttp為創(chuàng)建的XMLHttpRequest對(duì)象。函數(shù)名稱(chēng)func
6、tion_name不加括號(hào),不指定參數(shù)。也可以使用JavaScript即時(shí)定義函數(shù)的方法來(lái)定義相應(yīng)函數(shù),例如:XMLHttp.onreadystatechange=function(){//代碼}11.1.5處理服務(wù)器返回的信息readyState屬性的值為4時(shí),表示服務(wù)器已經(jīng)傳回了所有信息,可以開(kāi)始處理信息并更新頁(yè)面內(nèi)容了。例如:if(XMLHttp.readyState==4){//處理信息}else{window.alert("請(qǐng)求還未成功");}11.1.5處理服務(wù)器返回的信息服務(wù)器返回信息后需要判斷服務(wù)器的HTTP狀態(tài)碼,確定返回的頁(yè)面沒(méi)有錯(cuò)誤。
7、通過(guò)判斷XMLHttpRequest對(duì)象的status屬性的值即可得到HTTP狀態(tài)碼。如200表示OK(成功),404表示NotFound(未找到)。例如:if(XMLHttp.status==200){//頁(yè)面正常}else{window.alert("頁(yè)面有問(wèn)題");}XMLHttpRequest對(duì)象的statusTextHTTP屬性保存了HTTP狀態(tài)碼的相應(yīng)文本,如OK或NotFound等。XMLHttpRequest對(duì)成功返回的信息有如下兩種處理方式。?responseText:將傳回的信息當(dāng)字符串使用。?responseXML:將傳回的信息當(dāng)XM
8、L文檔使用,可以用DOM處理。11.2PHP與AJAX交互11.2