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