




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第18章 PHP與AJAXAJAX的英文全稱是“Asynchronous JavaScript and XML”,即異步JavaScript和XML。是一種用來開發交互性網頁的技術,其本身由多種技術組成。本章主要介紹AJAX的原理與使用方法,在學習本章之前,讀者可以提前了解一些關于JavaScript的知識,便于理解文中內容。在本章最后,將介紹一個用于PHP開發的AJAX框架SAJAX,以及其使用方法。18.1 AJAX引擎與數據提交AJAX最顯著的一個特點,就是在不安裝任何插件的情況下,可以用于創建功能豐富的客戶端,同時結合XHTML與CSS技術,大大提升了客戶體驗。本節主要介紹AJAX的原
2、理、使用方法,以及與服務器端代碼的配合。18.1.1 AJAX工作原理AJAX技術之所以迷人,是因為其打破了常規的網頁瀏覽方式,不僅提升了客戶體驗,同時對于提升程序運行效率,也有很大幫助。對于剛接解AJAX的讀者來說,可能生澀的術語,并不能幫助其理解AJAX的工作原理。最直觀的方法,就是使用圖形的方法來展示其運行過程。18.1.2 AJAX初始化在了解了AJAX的工作原理后,就可以從基本的AJAX代碼開始,實現AJAX模型。在整個AJAX模型中,用于實現異步回調的代碼是關鍵,這段代碼可以稱為AJAX的引擎。要實現AJAX引擎,就要從一個JavaScript對象開始,這個對象的名稱是XMLHtt
3、pRequest,使用這個對象可以完成HTTP請求、XML解析等操作。下面演示如何實現AJAX引擎,代碼如清單 所示。(詳細內容請參照本書)至此AJAX的初始化已經完成了,在接下來的小節中,就可以這個AJAX引擎來開發AJAX程序了。18.1.3 使用GET方法提交請求在以前的章節中,介紹過PHP與JavaScript使用XML文件,互相傳遞數據的方法,但是其過程缺點較多。在學習了AJAX的知識后,可以使用AJAX引擎,更高效的實現數據交互。HTTP請求分為GET和POST兩種方法,下面的例子將使用HTTP的GET方法,向當前腳本頁提交數據,并在不刷新頁面的情況下,使用PHP代碼中的數據,更新
4、當前頁面內容,代碼如下清單所示。18.1.4 使用POST方法提交請求客戶端要提交大數據量的請求時,可以使用POST方法來實現,使用POST方法提交請求與使用GET方法提交請求的方法基本相同,下面演示使用POST方法提交請求的步驟,代碼如清單所示。18.2 PHP與數據格式本章18.1小節主要介紹了AJAX引擎的實現,以及使用方法。在18.1節的演示代碼中,通過GET或POST方法提交請求后,PHP腳本返回的都是沒有規律的文本信息。而實際應用中,返回數據要復雜的多,這就要求PHP腳本要返回格式化的數據,以便于客戶端腳本使用。18.2.1 PHP、JavaScript、XML在AJAX模型中,P
5、HP的角色就是服務器端腳本,用于把服務器的資源轉化為XML格式的數據。在本書的2.1.9小節中,介紹了使用XML格式的文件,用于PHP與JavaScript進行數據交換的方法。其中PHP使用的是DOM函數來操作XML,JavaScript用于處理XML的是Microsoft.XMLDOM組件。18.2.2 PHP、JavaScript、JSON在AJAX中處理XML比較復雜,可以使用更簡單JSON來替換XML。JSON是JavaScript Object Notation的縮寫,相對于XML來說,JavaScript在處理JSON時更加方便,高效。為了使讀者更加直觀的了解JSON,下面列出三段
6、代碼,這三段代碼存儲的數據是一樣的,其中第1段是使用PHP數組存儲的,第2段是使用XML來存儲的,第3段是使用JSON格式存儲的,演示代碼如下所示。使用PHP數據組存儲數據的代碼:18.2.3 PHP與Javascript在經過了使用XML、以及JSON進行數據處理后,還可以使用JavaScript語句本身,來進行數據交換,下面通過代碼演示,如果在AJAX返回數據中使用JavaScript語句,代碼如清單所示。18.2.4 AJAX通用類在本章第18.1.2小節中,介紹了AJAX的核心代碼,并使用其進行了簡單的AJAX演示。雖然這段代碼可以運行,但是在實際應用中,其對瀏覽器的兼容性,以及使用靈
7、活性方面,都不盡人意。在AJAX開發中,許多開發人員為了編寫代碼的方便,編寫了很多易于使用,功能強大的AJAX類,下面就介紹其中一款名為AJAXRequest的AJAX通用類。AJAXRequest實現的功能很簡單,主要是為了減化開發步驟,減少重復代碼而開發的,18.3 AJAX與開發框架AJAX技術經常長時間的發展后,已經變得相當成熟,互聯網上也出現了許多針對于PHP的AJAX開發框架,本節主要介紹一個用于PHP開發的AJAX框架SAJAX。18.3.1 SAJAX安裝與使用SAJAX是一個跨平臺、跨瀏覽器的AJAX開發框架,并支持多種開發語言,包括asp、coldfusion、io、lua
8、、perl、php、python、ruby。SAJAX可以從其官方網站下載到,其官方網站的網址是 ,本小節使用的SAJAX版本的下載地址是 sajax-0.12.zip。下載的壓縮包內包括了多種語言的SAJAX,SAJAX只有一個文件,解壓縮文件后,可以從其文件夾中,復制PHP語言使用的sajax.php,到當前使用項目,或把SAJAX的PHP源代碼,集成到要開發的項目中,18.3.2 使用SAJAX顯示服務器時間眾所周知,JavaScript是在客戶端運行的腳本,并不能訪問服務端的資源,例如取得服務時間,但是使用AJAX技術,就可以實現這一功能,下面介紹使用SAJAX訪問服務器時間的方法,代
9、碼如清單所示。18.3.3 使用SAJAX提交表單使用SAJAX提交表單,也就是AJAX使用POST方式提交數據的實現,下面通過演示,介紹SAJAX使用POST方法提交數據的方法,代碼如清單18.11所示。18.3.4 SAJAX的返回數據類型SAJAX不僅可以返回字符串型的內容,也可以返回數組、對象、整型、浮點型的數據,下面通過代碼來演示,如何在SAJAX中返回這些類型的數據,代碼如清單所示。(詳細內容請參照本書)在清單的代碼中,為了使返回的中文字符不顯示為亂碼,在腳本開始時,先輸出了頭文件信息,保證以后輸出的內容,都是以GB2312編碼的字符。18.4 常見問題本章主要演示了AJAX技術原
10、理,以及應用實例。并介紹和演示了SAJAX開發框架。本節將列出關于使用AJAX技術時,容易出現的問題,以及解決方法,供讀者參考。18.4.1 POST與GET方法在AJAX編程中,使用GET方法提交據,主要用于需要處理的數據量比較小的情況下,其使用方法比較簡單,而POST方法在使用時與GET方法有所差別,這一點在使用時,很容易被疏忽。在實際使用中,可以把AJAX中的JavaScript代碼,使用類進行封裝,或直接使用第三方的AJAX類。如果要在PHP程序中,加入AJAX的支持,可以直接使用AJAX開發框架,例如:SAJAX。18.4.2 中文亂碼在AJAX編程中,最令開發人員頭痛的就是中文字符的編碼問題。通用的解決方法是,在客戶端提交數據前對數據進行編碼,例如使用JavaScript語言的ecsape()函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高考政治全國卷逐題回顧與預測專題05公民的政治生活-針對高考第16題含解析
- 項目審計程序與技巧考核試題及答案
- 陜西規劃課題申報書
- 項目管理考試中的高頻考點與試題答案
- 精通微生物檢驗技師證書考試的試題及答案
- 行業分析對證券投資的重要性試題及答案
- 規劃課題課題申報評審書
- 項目管理考試全流程掌握試題及答案
- 專業人士制作的證券從業資格證考試試題及答案
- 項目資源優化配置實務試題及答案
- 【MOOC】大學體育(二)-華中科技大學 中國大學慕課MOOC答案
- 機油化學品安全技術(MSDS)說明書
- 體育概論-第三版-楊文軒-陳琦-全國普通高等學校體育專業類基礎課程教材-第五章-體育手段
- 大班音樂《水果百變秀》課件
- 婦幼保健院醫療保健服務轉介工作制度和流程
- 國家職業技能鑒定考評員考試題庫1100題【含答案】
- 監察機關執法工作規定學習測試
- 產品鑒定試驗大綱
- 2022職業病防治法宣傳周PPT
- (高清版)外墻外保溫工程技術標準JGJ144-2019
- 常州市武進區征地拆遷房屋裝修及附屬設施補償標準
評論
0/150
提交評論