版權資訊
書 名: Ajax從入門到精通
作 者:陳華
出版社: 清華大學出版社
出版時間: 2008
ISBN: 9787302176428
開本: 16
定價: 76.00 元
內容簡介
《Ajax從入門到精通》作為比較全面的Ajax教程書籍,涵蓋了基本語言介紹(JavaScript)、DHTML技術(DOM)、Ajax技術核心知識、面向對象的JavaScript、數據組織方式(XML和JSON)等知識,並對開發工具和調試技巧以及流行的套用框架進行了介紹。尤其是本書的第10~15章,介紹了Ajax的高級技術,包括對XML和JSON的深入介紹,以及對Ajax應用程式架構的探討、JavaScript面向對象編程的技巧等。
《Ajax從入門到精通》對於PHP、ASP、Java、.NET程式設計師有很大的幫助,同時適合Web前端開發人員、Web性能檢測人員、需要掌握Ajax技術的測試人員、Web架構師、學習Web高級技術的初級程式設計師以及所有的Web普通開發人員作為必備參考用書使用。
編輯推薦
講解Ajax的原理、開發、調試、跨瀏覽器兼容等高級技術用、JavaScrlpl實現最流行的Ajax框架和組件、解讀最經典的JavaScript框架Prototype.js、詳細介紹Web開發技術的最佳化、分析、JavaScript的面向對象編程和Ajax的數據形式、JSON、配有原始碼光碟,提高學習效率。
準備篇
什麼是Ajax
1.1Ajax概述
1.1.1關鍵技術:XMLHttpRequest
1.1.2Ajax名詞的由來
1.2經典案例1:搜尋關鍵字建議系統(GoogleSuggest)
1.3經典案例2:優秀的電子郵件服務系統(Gmail)
1.3.1註冊Gmail
1.3.2Gmail主界面
1.3.3Inbox(收件箱)工作區域
1.3.4WebClip(網路剪輯)
1.3.5郵件操作區域
1.3.6操作郵件
1.4第一個Ajax應用程式:
HelloWorld!
1.5小結
技術構成
JavaScript:Ajax的開發語言
2.1JavaScript概述
2.1.1對JavaScript的誤解
2.1.2JavaScript的版本
2.2數據類型和值
2.2.1數字
2.2.2字元串
2.2.3布爾值
2.2.4函式
2.2.5對象
2.2.6數組
2.2.7null值
2.2.8undefined值
2.3JavaScript的變數
2.3.1變數的類型
2.3.2變數的聲明
2.3.3變數的作用域
2.3.4基本類型和引用類型
2.4表達式和運算符
2.4.1表達式
2.4.2算術運算符
2.4.3相等運算符
2.4.4關係運算符
2.4.5賦值運算符
2.4.6邏輯運算符
2.4.7字元串運算符
2.4.8其他運算符
2.5語句
2.5.1聲明變數:var語句
2.5.2流程控制:if語句
2.5.3流程控制:elseif語句
2.5.4流程控制:switch語句
2.5.5循環:while語句
2.5.6循環:do/while語句
2.5.7循環:for語句
2.5.8遍歷:for/in語句
2.5.9控制語句:break語句
2.5.10控制語句:continue語句
2.5.11函式語句:function語句
2.5.12函式返回值:return語句
2.5.13拋出異常:throw語句
2.5.14異常處理:try/catch/finally語句
2.5.15空語句
2.6JavaScript的函式
2.6.1函式的定義和調用
2.6.2實際參數列表:arguments屬性的使用
2.7大小寫敏感性
2.8JavaScript的注釋
2.9JavaScript的保留字
JavaScript的常用對象
3.1保存多個數據元素的容器:Array對象
3.1.1數組的創建
3.1.2得到數組的長度
3.1.3添加、刪除和替換數組元素
3.1.4得到數組片段
3.1.5反轉數組
3.1.6將數組轉換成字元串
3.1.7數組元素的排序
3.2字元串的處理:String對象
3.2.1獲取字元串的長度
3.2.2字元串的截取
3.2.3字元串的替換
3.2.4大小寫轉換
3.2.5將字元串轉換成數組
3.2.6拼接字元串的最佳化方法
3.3正則表達式:RegExp對象
3.3.1創建正則表達式
3.3.2正則表達式的語法規則
3.3.3正則表達式的屬性
3.3.4用於模式匹配的String方法
3.3.5用於模式匹配的RegExp方法
3.3.6常用正則表達式
3.4日期和時間:Date對象
3.4.1Date對象的創建
3.4.2讀取和設定日期及時間的各個部分
3.4.3日期和時間的換算
3.5複雜的數學運算:Math對象
3.5.1小數的取整
3.5.2得到隨機數
3.5.3冪運算
3.5.4最大值和最小值
3.6操作瀏覽器視窗:window對象
3.6.1使用對話框
3.6.2改變視窗狀態欄的信息
3.6.3延遲執行和定時執行
3.6.4URL的獲取和跳轉
3.6.5歷史記錄的前進和後退
3.6.6控制視窗的大小和位置
3.6.7打開和關閉視窗
3.6.8獲得焦點和失去焦點
3.6.9取得用戶顯示器的信息
3.6.10取得用戶瀏覽器的信息
3.7操作HTML文檔:document對象
3.7.1文檔的輸出
3.7.2文檔的標題
3.7.3文檔的圖像
3.7.4文檔的超連結
3.7.5文檔的表單
3.8套用實例
3.8.1在網頁上顯示自動更新的日期和
時間
3.8.2一個簡單的小遊戲:LuckySeven(幸運7)
3.9小結
DOM文檔對象模型介紹
4.1基本概念
4.1.1樹形結構
4.1.2結點的類型和組成
4.1.3結點之間的關係
4.2結點的引用
4.2.1根據id屬性引用結點
4.2.2根據name屬性引用結點
4.2.3根據標籤名引用結點
4.2.4引用父結點
4.2.5引用子結點
4.2.6引用相鄰的結點
4.3結點的操作
4.3.1創建元素結點
4.3.2創建文本結點
4.3.3添加結點
4.3.4插入子結點
4.3.5替換子結點
4.3.6複製結點
4.3.7刪除子結點
4.3.8讀取結點屬性
4.3.9添加和修改屬性結點
4.3.10刪除屬性結點
4.4控制元素的樣式
4.4.1獲取和設定元素的css類
4.4.2獲取和設定元素樣式
4.5事件處理
4.5.1事件模型和傳播機制
4.5.2註冊事件處理程式
4.5.3註銷事件處理程式
4.5.4事件對象
4.5.5常用事件
4.6套用實例
4.6.1懸浮的廣告
4.6.2可拖動的層
4.7小結
開發Ajax應用程式需要使用的工具
5.1開發工具:Aptana
5.1.1Aptana的下載和安裝
5.1.2Aptana的界面介紹
5.1.3Aptana的使用
5.1.4Aptana的更新
5.1.5Aptana的卸載
5.2Firefox
5.2.1錯誤控制台:ErrorConsole
5.2.2優秀的調試外掛程式:Firebug
5.3HTTP調試工具:Fiddler
5.3.1Fiddler的下載和安裝
5.3.2使用Fiddler
5.4小結
技術分析
HelloWorld!分析
6.1XMLHttpRequest對象詳解
6.1.1初始化請求
6.1.2設定請求的HTTP頭信息
6.1.3傳送請求
6.1.4獲取請求的當前狀態
6.1.5指定請求狀態改變時的事件處理句柄
6.1.6返回當前請求的HTTP狀態碼
6.1.7從返回信息中獲取指定的HTTP頭
6.1.8獲取返回信息的所有HTTP頭
6.1.9取得返回的數據
6.1.10取消當前請求
6.2搭建基本的Ajax開發框架
6.2.1創建XMLHttpRequest對象
6.2.2傳送請求和回調函式
6.2.3一個封裝好的基本Ajax應用程式開發框架
6.3小結
完善的Ajax應用程式:Ajax留言本
7.1留言本的需求
7.2留言本的基本設計
7.2.1系統環境
7.2.2留言的數據和操作
7.2.3資料庫設計
7.2.4後台功能模組
7.2.5前台腳本功能模組
7.2.6系統檔案結構和檔案清單
7.3留言本的實現
7.3.1創建資料庫
7.3.2完成前台界面:index.html
7.3.3完成前台界面:樣式表
7.3.4完成後台功能模組:資料庫操作模組
7.3.5完成後台功能模組:留言本邏輯處理模組
7.3.6完成後台功能模組:接口模組
7.3.7完成前台功能模組:基本Ajax功能模組
7.3.8完成前台功能模組:讀取和傳送留言
7.3.9整合留言本程式
7.4留言本的功能測試
7.5小結
調試技巧
8.1深入解析Firebug的調試功能
8.1.1檢查常規錯誤
8.1.2完善的log功能
8.1.3控制台的命令行功能
8.1.4斷點、單步執行和變數信息
8.1.5在其他瀏覽器中使用Firebug的控制台
8.1.6禁止測試代碼
8.2使用Aptana的集成調試功能
8.2.1配置集成調試環境
8.2.2啟動調試
8.2.3斷點、單步執行和變數信息
8.2.4使用console.log和dump輸出文本信息
8.2.5使用aptana.trace輸出調用堆疊信息
8.2.6使用斷言
8.2.7禁止調試代碼
8.3小結
常見問題
9.1編碼的處理
9.1.1檔案編碼與聲明編碼
9.1.2Ajax請求亂碼
9.1.3傳送數據亂碼
9.2控制快取
9.3選擇合適的請求方式
9.4控制多個Ajax請求
9.4.1輪詢模式
9.4.2事件回響模式
9.5Ajax請求的安全性
9.5.1身份驗證
9.5.2防範SQL注入
9.5.3防範JavaScript注入
9.6小結
套用進階
數據的組織方式:XML
10.1XML概述
10.2XML語法規範
10.2.1XML聲明
10.2.2根節點
10.2.3開始和結束標記
10.2.4屬性
10.2.5合理地嵌套包含
10.2.6大小寫敏感性
10.2.7空白被保留
10.2.8XML的注釋
10.2.9元素的命名
10.2.10轉義字元
10.2.11CDATA部件
10.3XML命名空間
10.4XMLSchema
10.4.1基本示例
10.4.2定義元素
10.4.3簡單類型
10.4.4複合類型
10.4.5定義屬性
10.4.6默認值
10.4.7約束特殊值
10.4.8列表類型
10.4.9聯合類型
10.4.10匿名類型定義
10.4.11簡單的複合類型
10.4.12混合內容
10.4.13任意類型
10.4.14分組和引用
10.4.15命名衝突
10.4.16關聯XML與XMLSchema
10.5XMLDOM
10.5.1創建XMLDOM對象
10.5.2載入XML文檔
10.5.3載入XML片段
10.5.4取得XML內容
10.6強大的檢索工具:XPath
10.6.1基本示例
10.6.2選取節點
10.6.3謂語
10.6.4通配符
10.6.5使用多個路徑
10.6.6坐標軸
10.6.7運算符
10.6.8路徑表達式的步語法
10.6.9XPath函式
10.7格式化XML工具:XSL
10.7.1基本示例
10.7.2XSL聲明
10.7.3使用模板
10.7.4取得數據
10.7.5使用for-each元素代替模板
10.7.6使用sort元素進行排序
10.7.7流程控制
10.7.8創建元素和屬性
10.7.9指定輸出格式
10.8在客戶端格式化XML
10.9跨瀏覽器的XML開發框架:zXML
10.10套用實例:Ajax文章列表程式(XML)
10.10.1確認需求
10.10.2系統設計
10.10.3系統實現:創建資料庫
10.10.4系統實現:完成後台模組
10.10.5系統實現:完成前台界面
10.10.6系統實現:完成前台模組
10.10.7系統實現:編寫xsl樣式表
10.10.8整合系統
10.10.9系統測試
10.11小結
數據的組織方式:JSON
11.1JSON的語法結構
11.1.1JSON的基本結構
11.1.2JSON中值的類型
11.2JSON的語言支持
11.2.1在JavaScript中讀取JSON數據
11.2.2在JavaScript中輸出JSON數據
11.2.3在PHP中使用JSON
11.2.4在C#中輸出JSON數據
11.2.5在C#中輸出帶類型說明的JSON數據
11.2.6在C#中讀取JSON數據
11.2.7更多語言支持
11.3JSON的優點和不足
11.3.1JSON的優點
11.3.2JSON的不足
11.4將XML轉換為JSON
11.5小結
JavaScript面向對象編程(OOP)
12.1JavaScript中的類
12.1.1創建類
12.1.2類的屬性
12.1.3類的方法
12.1.4公有屬性和私有屬性
12.1.5公有方法和私有方法
12.1.6靜態屬性和靜態方法
12.1.7原型對象prototype
12.2JavaScript中的繼承
12.2.1對象冒充
12.2.2使用對象冒充實現繼承
12.2.3繼承原型對象中的屬性和方法
12.2.4封裝繼承方法
12.3更多技巧
12.3.1屬性的封裝
12.3.2實現多態
12.3.3命名空間
12.3.4實現短類名
12.4使用JSVM進行代碼組織
12.4.1下載和配置JSVM
12.4.2路徑和檔案名稱的約定
12.4.3編寫類
12.4.4類的按需載入
12.4.5在類中引用其他類
12.5小結
跨瀏覽器的兼容性問題
13.1使用getElementById代替idName
13.2表單元素的引用問題
13.3訪問集合對象成員的問題
13.4讀取自定義屬性的問題
13.5常量的定義問題
13.6input元素的type屬性讀寫問題
13.7模態視窗的問題
13.8frame的操作問題
13.9innerText的問題
13.10對父元素的引用問題
13.11getElementsByName的問題
13.12outerText的問題
13.13outerHTML的問題
13.14小結
Prototype.js框架介紹
14.1Prototype.js常用方法介紹
14.1.1使用$方法代替document.getElementById
14.1.2使用$$方法獲得元素引用
14.1.3根據css類名取得元素集合
14.1.4使用Try.these嘗試運行多個函式
14.1.5使用$F方法來獲得表單元素的值
14.1.6數組疊代的簡化方法
14.1.7設定元素的樣式
14.1.8切換元素的隱現狀態
14.1.9序列化表單值
14.1.10轉換HTML標籤
14.2基於Prototype.js的類和繼承
14.2.1使用Class.create()創建類
14.2.2Prototype.js中的繼承
14.3Prototype.js中的事件處理
14.3.1註冊事件處理函式
14.3.2註銷事件處理函式
14.4Prototype.js的Ajax功能
14.4.1Ajax.Request方法詳解
14.4.2用Ajax.Updater更新界面
14.4.3用Ajax.PeriodicalUpdater定時更新界面
14.4.4使用Form.request方法無刷新提交表單
14.5基於Prototype.js的留言本程式
14.6小結
第15章關於架構的思考
15.1REST架構模式
15.2Web應用程式的發展史
15.2.1提供靜態文檔的Web站點
15.2.2早期的動態Web應用程式
15.2.3融入式Web應用程式
15.3Ajax為REST帶來新的契機
15.3.1快取Ajax程式引擎
15.3.2快取Ajax數據
15.4小結
Ajax的缺陷及補救
16.1搜尋引擎的收錄問題
16.1.1問題產生的原因
16.1.2解決辦法
16.2前進和後退的問題
16.2.1問題產生的原因
16.2.2Firefox下的解決辦法
16.2.3在IE下的解決辦法
16.3小結
實戰篇
Ajax高級表單驗證程式
17.1確定需求
17.2基本設計
17.3代碼實現
17.3.1實現EventManager類
17.3.2實現Request類
17.3.3實現Validator類
17.3.4實現FormItemValidator類
17.3.5實現FormValidator類
17.4測試
Ajax動態聯動選單
18.1確定需求
18.2基本設計
18.3實例代碼
18.4測試
Ajax聊天室
19.1確定需求
19.2基本設計
19.2.1系統結構
19.2.2實體及資料庫設計
19.2.3後台功能模組
19.2.4請求控制器
19.2.5前台界面
19.2.6前台功能模組
19.3實例代碼
19.3.1建立資料庫
19.3.2實現後台功能模組
19.3.3請求控制器
19.3.4界面HTML和CSS代碼
19.3.5前台功能模組
19.3.6加入表情圖示
19.3.7整合程式
19.4測試
附錄AJavaScript速查手冊
附錄BHTMLDOM速查手冊
附錄CPrototype速查手冊