作者簡介
DaveCarane是著名的Ajax權威,領銜撰寫了《Ajax實戰》三部曲。編輯推薦
《Ajax實戰實例詳解》是Aiax大師DaveCrane繼巨著《Ajax實戰》之後,與數位頂尖高手聯袂推出的又一部Ajax力作。《Ajax實戰實例詳解》中直指Ajax/JavaScript應用程式開發中急需解決的各種具體問題,通過大量經典的可重用代碼。
七位世界級Web專家巨獻、引領你進入Ajax2.0時代、大量Ajax/JavaScript核心技巧和最佳實踐。
Ajax賦予了web程式設計師開創未來的潛力。但是,Ajax應用程式的複雜性和開發難度也大大增加——如此空前的挑戰,我們應該如何應對?
目錄
第一部分Ajax基礎
第1章擁抱Ajax
1.1Ajax,一種顛覆性的技術
1.1.1重新定義用戶的工作流程
1.1.2重新定義Web套用的架構
1.2Ajax快速入門
1.2.1XMLHTTPRequest簡介
1.2.2實例化XMLHttpRequest
1.2.3傳送請求
1.2.4處理響應
1.2.5XMLHttpRequest的其他方法和屬性
1.3使用框架簡化Ajax
1.3.1用Prototype庫中的Ajax.Request對象創建請求
1.3.2簡化Ajax回響
1.4總結
第2章Ajax的通信方式
2.1在伺服器端生成JavaScript
2.1.1執行由伺服器生成的代碼
2.1.2遵循代碼生成的實踐準則
2.2JSON簡介
2.2.1在伺服器上生成JSON
2.2.2使用JSON往返傳輸數據
2.3在Ajax中使用XML和XSLT
2.3.1解析伺服器生成的XML
2.3.2用XSLT和XPath來更好地處理XML
2.4在Web服務中使用Ajax
2.5總結
第3章面向對象的JavaScript與Prototype庫
3.1面向對象的JavaScript
3.1.1對象的基本原理
3.1.2函式是一等公民
3.1.3對象構造器和方法
3.1.4編寫JavaScript類:一個按鈕
3.2Prototype程式庫
3.2.1常用的函式和擴展
3.2.2對數組的擴展
3.2.3Hash類
3.2.4給函式綁定上下文對象
3.2.5面向對象的Prototype
3.2.6用Prototype重寫Button類
3.3總結
第4章Ajax開源工具集
4.1Dojo工具包
4.1.1用Dojo進行異步請求
4.1.2用Dojo自動對表單進行編組
4.2Prototype
4.2.1Prototype中的異步請求
4.2.2用Prototype進行自動更新
4.2.3用Prototype進行定期更新
4.3jQuery
4.3.1jQuery基礎
4.3.2用jQuery進行異步載入
4.3.3用jQuery獲取動態數據
4.4DWR
4.5總結
第二部分Ajax最佳實踐
第5章事件處理
5.1事件處理模型
5.1.1基本的事件處理註冊
5.1.2高級事件處理
5.2Event對象與事件傳播機制
5.2.1Event對象
5.2.2事件的傳播
5.3使用Prototype進行事件處理
5.4事件類型
5.4.1滑鼠事件
5.4.2鍵盤事件
5.4.3change事件
5.4.4頁面事件
5.5事件處理實踐
5.5.1在服務端驗證文本欄位
5.5.2無需頁面重新載入的表單元素提交方式
5.5.3隻提交發生改變的元素
5.6總結
第6章表單驗證與提交
6.1客戶端表單驗證
6.1.1在客戶端進行驗證
6.1.2即時驗證
6.1.3跨欄位驗證
6.2投遞數據
6.2.1POST請求剖析
6.2.2將數據投遞到伺服器
6.2.3將表單數據投遞到伺服器
6.2.4檢測表單數據變化
6.3總結
第7章內容導航
7.1網站導航原理
7.1.1大海撈“針”
7.1.2創造更好的“針”探
7.1.3導航和Ajax
7.2傳統的Web導航
7.2.1一個簡單的導航選單
7.2.2DHTML選單
7.3借鑑桌面套用的導航設施
7.3.1使用qooxdoo庫實現Tab組件
7.3.2qooxdoo工具列和視窗
7.3.3qooxdoo樹組件
7.4桌面套用和Web套用的折中
7.4.1OpenRico庫的accordion控制項
7.4.2創建HTML友好的樹控制項
7.5總結
第8章處理後退、刷新和撤銷
8.1禁止用戶訪問瀏覽器的導航控制項
8.1.1移除瀏覽器導航工具列
8.1.2捕捉快捷鍵
8.1.3禁止右鍵彈出上下文選單
8.1.4阻止用戶導航歷史記錄或刷新頁面
8.2與瀏覽器導航控制項協作
8.2.1使用JavaScript內建的history對象
8.2.2使用Hash對象實現書籤
8.2.3RSH框架介紹
8.2.4使用RSH框架維護客戶端狀態
8.2.5使用RSH在服務端維護應用程式狀態
8.3處理撤銷操作
8.3.1何時提供可撤銷功能
8.3.2實現一個可撤銷/恢復操作棧
8.3.3擴展撤銷棧以支持更複雜的用戶操作
8.4總結
第9章拖放
9.1支持拖放的JavaScript框架
9.2Ajax套用中的拖放
9.2.1支持拖放的Ajax購物車示例
9.2.2拖放列表中的數據操縱
9.2.3使用ICEfaces創建Ajax購物車
9.3總結
第10章對用戶友好一點
10.1與延遲作鬥爭
10.1.1以反饋來應對等待
10.1.2顯示進度
10.1.3Ajax請求逾時
10.1.4處理多次點擊
10.2預防和檢測輸入錯誤
10.2.1主動顯示上下文幫助
10.2.2對表單輸入項進行有效性驗證
10.3維護焦點和分層順序
10.3.1維護焦點順序
10.3.2管理堆疊順序
10.4總結
第11章狀態管理和快取
11.1客戶端狀態的維持
11.2伺服器數據快取
11.2.1Java類的數據的交換
11.2.2預取
11.3客戶端狀態的持久化
11.3.1以JSON形式存儲和取回用戶狀態
11.3.2通過AMASS保存JSON字元串
11.4總結
第12章開放式WebAPI和Ajax
12.1Yahoo!開發者網路
12.1.1Yahoo!地圖
12.1.2跨伺服器代理
12.1.3Yahoo!MapsGeocoding
12.1.4Yahoo!交通
12.2Google搜尋API
12.3Flickr圖片分享
12.3.1Flickr用戶內部標識
12.3.2Flickr圖片和縮略圖
12.4稍等!據說,還有很多……
12.4.1Amazon服務
12.4.2eBay服務
12.4.3MapQuest
12.4.4NOAA/國家氣象服務
12.4.5更多Web服務接口
12.5總結
第13章使用Ajax進行混搭
13.1Trip-o-matic套用簡介
13.1.1套用的目的
13.1.2套用概覽和需求
13.2Trip-o-matic的數據檔案
13.2.1我們應該採用什麼格式
13.2.2旅行數據格式
13.2.3設定Flickr照片集
13.3TripomaticDigester類
13.3.1依賴性檢查
13.3.2TripomaticDigester的構造器
13.3.3解讀旅行數據
13.3.4載入經典信息
13.3.5收集元素的文本內容
13.4Tripomatic套用類
13.4.1Tripomatic類和構造器
13.4.2創建內容元素
13.4.3填充旅行數據
13.4.4顯示地圖
13.4.5載入縮略圖
13.4.6顯示照片
13.5Trip-o-matic套用頁面
13.5.1Trip-o-matic的HTML文檔
13.5.2樣式之旅
13.6總結
……