




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第9章 Ajax應用9.1 Ajax簡介9.2 Ajax應用分析9.3 Ajax過程解析9.4 Ajax數據格式9.5 創建Ajax應用對象9.6 Ajax異常處理9.7 利用JavaScript庫實現Ajax應用18 八月 2022JavaScript語言與Ajax應用(第二版)1第1頁,共19頁。9.1 Ajax簡介Ajxa技術說的是把JavaScript、CSS、DOM和HTML結合起來的一種新的編程思路和方法。我們知道,常規的Web應用在運行時需要經常性的刷新整個頁面。用戶在頁面上做出一項選擇或者輸入一些數據,瀏覽器把這些信息發送給服務器,服務器根據用戶的操作返回一個新的頁面,即使用
2、戶只是對服務器做了一次簡單的數據訪問,服務器也需要返回一個全新的頁面。Ajax技術等于是在客戶端和服務器端之間加入了一個中間層:JavaScript代碼先把請求從客戶端發送給中間層,再由這個中間層把請求轉發給服務器端,服務器端的響應也是先由這個中間層接收,再由這個中間層把響應的結果轉發給客戶端的JavaScript代碼處理。18 八月 2022JavaScript語言與Ajax應用(第二版)2第2頁,共19頁。9.2 Ajax應用分析現在很多互聯網公司都利用Ajax技術開發出了功能強大的Web應用,其中Google公司的Gmail電子郵件應用就出色的示范了Ajax技術的威力。在Gmail應用中
3、,電子郵件草稿在點擊保存按鈕之后,會被發送給服務器保存起來,而這個過程并不會刷新整個頁面,如圖所示。18 八月 2022JavaScript語言與Ajax應用(第二版)3第3頁,共19頁。9.3 Ajax過程解析9.3.1 Ajax的請求/響應過程9.3.2 失敗的Ajax請求18 八月 2022JavaScript語言與Ajax應用(第二版)4第4頁,共19頁。9.3.1 Ajax的請求/響應過程在傳統的頁面請求過程中,瀏覽器發出對數據的請求,然后等待服務器發回響應,響應接受完成后瀏覽器渲染頁面。而在頁面中使用Ajax技術后,可以大大減少客戶端與服務器端之間的數據傳輸量,對數據的請求也可以異
4、步發出,在整個Ajax服務器訪問過程中,用戶不必等待服務器響應和頁面刷新,而且服務器響應接收后只需要改變當前文檔對象,不需要影響整個頁面(包括圖片和CSS等資源)。也就是說可以實現訪問服務器接受響應并更新頁面DOM的內容而無需刷新整個頁面。18 八月 2022JavaScript語言與Ajax應用(第二版)5第5頁,共19頁。9.3.2 失敗的Ajax請求Ajax服務器訪問相對于傳統的非Ajax服務器訪問方式來說是一種異步數據訪問過程,在異步環境下往往需要考慮更多的異常情況,這些異常情況包括:請求超時會發生什么事?應該等待多長時間?要是服務器響應的數據格式不正確,該如何處理?如果用戶同時發出了
5、多個請求該如何處理?這些異常情況都是在開發一個使用Ajax技術的頁面時必須處理的問題18 八月 2022JavaScript語言與Ajax應用(第二版)6第6頁,共19頁。9.4 Ajax數據格式9.4.1 XML9.4.2 JSON18 八月 2022JavaScript語言與Ajax應用(第二版)7第7頁,共19頁。9.4.1 XMLXMLHttpRequest對象最初在設計時就是用來返回XML格式的結果的。它有一個responseXML屬性,該屬性返回的XML屬性會被自動解析成一個可以定位的XMl格式的DOM對象,讓我們可以通過DOM方法在其中定位節點和獲取數據。18 八月 2022Ja
6、vaScript語言與Ajax應用(第二版)8第8頁,共19頁。9.4.2 JSON如果我們利用字符串格式的服務器響應傳輸一段JavaScript語言代碼,然后用eval()函數執行,代碼如下所示:eval(transport.responseText);這樣的話我們將可以把服務器響應作為一段插入頁面的JavaScript代碼來執行了。現在,這種技巧已經演變成為了一種非常優秀的Ajax數據傳輸方式,那就是JSON(JavaScript Object Notation,JavaScript對象表示法)。JSON格式表示的數據對象實際上就是JavaScript語言中的字面量對象,但是只允許包含以下
7、幾種類型:字符串、數值、數組和其他字面量對象,并且鍵和字符串類型的值都必須用雙引號括起來。18 八月 2022JavaScript語言與Ajax應用(第二版)9第9頁,共19頁。9.5 創建Ajax應用對象在前面幾節中已經初步建立了應用Ajax技術訪問服務器獲取數據的頁面,但是頁面中的JavaScript代碼并沒有組織的很好,尤其是在實現Ajax技術的時候很繁瑣,而且代碼也不具備可重用性。本節的目的就是要建立一個對象,封裝實現Ajax頁面所需的全部功能,以便在實際項目中使用。18 八月 2022JavaScript語言與Ajax應用(第二版)10第10頁,共19頁。 9.6 Ajax異常處理9
8、.6.1 訪問超時9.6.2 HTTP狀態代碼9.6.3 多從請求9.6.4 意外數據18 八月 2022JavaScript語言與Ajax應用(第二版)11第11頁,共19頁。9.6.1 訪問超時在Ajax服務器請求發送出去之后,發出請求的頁面會一直等待服務器響應,直到服務器關閉連接。如果遇到一些特殊情況,比如服務器繁忙無法及時響應、Internet連接不通暢或服務器關閉等,用戶就會覺得等待時間太長,從而開始懷疑是否頁面本身有錯誤。為了應對這一情況,比較成熟的做法是讓頁面等待一段時間后讓調用超時,并處理超時錯誤。18 八月 2022JavaScript語言與Ajax應用(第二版)12第12頁
9、,共19頁。9.6.2 HTTP狀態代碼Web服務器在接收到任何一種訪問請求時都會返回一個響應。在響應里面會包含一個狀態代碼,代碼表示了一些與服務器響應相關的信息。一個正確的服務器響應往往會包含的狀態代碼為200。在200區間內的狀態代碼都表示成功。300區間內的代碼表示服務器重定向。400區間是請求錯誤,這也是我們在瀏覽器中常見的400錯誤,可能是請求沒有正確發送,也有可能是頁面不存在。最后500區間表示服務器本身出錯。對于Ajax請求來說,只有得到200區間內的相應代碼才能說是正確的服務器響應。18 八月 2022JavaScript語言與Ajax應用(第二版)13第13頁,共19頁。9.
10、6.3 多從請求所謂多重請求,指的是一個頁面在發出一個Ajax請求后在服務器沒有發回響應前又向該服務器發出一個同樣的Ajax請求。在Ajax網站應用中,多重請求會經常發生,所以我們在編寫Ajax頁面時必須考慮到多重請求的情況。18 八月 2022JavaScript語言與Ajax應用(第二版)14第14頁,共19頁。9.6.4 意外數據對于使用了Ajax技術的頁面來說,還有一個需要注意的問題,也就是對服務器發回的響應的數據格式的檢查。服務器返回的數據不一定總是正確的。如果打算以特定的格式返回數據,比如XML或JSON,應該在服務器端設置一種特殊的數據,讓它在結果里能返回某種錯誤代碼。然后讓客戶
11、端在處理服務器發回的結果之前,先檢查錯誤代碼,如果服務器返回的不是想要的內容,客戶端也要能處理這種異常情況。18 八月 2022JavaScript語言與Ajax應用(第二版)15第15頁,共19頁。9.7 利用JavaScript庫實現Ajax應用9.7.1 jQuery9.7.2 ExtJS18 八月 2022JavaScript語言與Ajax應用(第二版)16第16頁,共19頁。9.7.1 jQueryjQuery庫是圍繞DOM操作來設計的,它在處理Ajax的方式上也是如此。首先在jQuery庫中提供了一個最便捷的Ajax調用函數,也就是load()函數,該函數可以用在利用jQuery庫
12、獲取的DOM對象上,比如:$(#content).load(a.htm);上述代碼首先通過$函數獲取頁面中ID為content的元素,然后它向指定的URL發出Ajax請求,并用相應的結果替換掉content元素中的內容。18 八月 2022JavaScript語言與Ajax應用(第二版)17第17頁,共19頁。9.7.2 ExtJSExtJS是一個非常優秀的JavaScript庫,可以用來開發富有華麗外觀的富客戶端應用,能使Web應用更加具有活力。ExtJS庫的設計目的與jQuery庫不一樣,它更注重于為頁面提供各種外觀組件而不是簡化JavaScript編碼,所以ExtJS庫并沒有向jQuery庫那樣提供很多用于簡化Ajax應用的對象,而是提供了一個功能完整的全局函數Ext.Ajax.request()就像jQuery庫中提供的ajax()函數一樣,該函數通過指定的輸入參數可以實現任何類型的Ajax請求發送和解析任何類型的服務器響應數據。18 八月 2022JavaScript語言與Ajax應用(第二版)18第18頁,共19頁。 本章小結本章主要說明了什么是Ajax,并且比較了它和傳統頁面調用的差異。介紹了Ajax中使用的各種數據交換格式,以及它們各自適合的場景。本章還逐步講解了如何自己設計一個Ajax對象,并且演示了如何為各種意外情
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 滌綸纖維在防霉地毯材料中的應用考核試卷
- 塑料鞋制造過程廢料處理與回收利用考核試卷
- 生物制藥過程中的質量控制實驗室建設與管理考核試卷
- 電視廣播信號加密與解密技術考核試卷
- 玻璃屋頂搭建考核試卷
- 電視芯片原理與系統集成考核試卷
- 皮革護理技能競賽策劃與實施考核試卷
- 陽泉職業技術學院《單片機技術與應用》2023-2024學年第二學期期末試卷
- 四川托普信息技術職業學院《建設用地管理》2023-2024學年第二學期期末試卷
- 徐州市九里區2024-2025學年四下數學期末復習檢測試題含解析
- 中國銀聯招聘筆試題庫2024
- 2024安徽制造業發展報告
- 四年級下冊道德與法治(教學設計+素材)第8課《這些東西哪里來》(第二課時)
- 高職旅游專業《旅行社經營管理》說課稿
- DB65-T 4785-2024 耕地質量等級調查評價技術規范
- 財務機器人開發與應用實戰 課件 任務5 E-mail人機交互自動化-2
- 2024年個人廉潔自律述職報告(三篇)
- 【華為】通信行業:華為下一代鐵路移動通信系統白皮書2023
- 小學家長會-做好孩子手機管理主題班會課件
- Python 程序設計智慧樹知到期末考試答案章節答案2024年四川師范大學
- 山東省技能大賽青島選拔賽-世賽選拔項目55樣題(3D數字游戲技術)
評論
0/150
提交評論