Ajax高級程式設計

Ajax高級程式設計

本書是一本關於Ajax技術、模式和使用場景的開發人員級教程,不僅介紹了Ajax的基本知識,還討論了Ajax模式和框架,同時針對XML(包括XPath和XSLT)、RSS/Atom、Web服務、JSON和Web用戶界面組件等主題,闡述了如何將Ajax和這些技術有效地結合在一起,並利用Ajax開發的一個Web Mail系統實例。書中經典的實例、完整的原始碼,都將給讀者帶來“實戰”的指導。與本書配套的原始碼可以在圖靈網站下載。 本書內容廣泛且深入,適用於中高層次的Web網站開發人員。

基本信息

書籍簡介

版次:2006年6月第1版

裝幀:平裝

開本:16開

作者簡介

Nicholas C.Zakas是Merrimack大學的計算機科學學士、Endicott大學的MBA。它是《Professinal JavaScript for Web Developer》和許多線上文章的作者。Nicholas擁有超過5年的Web開發經驗,並為世界上許多大型公司的Web解決方案開發提供了幫助。

Jeremy McPeak在1998年就以業餘愛好的方式投身於Web開發中。現在供職於一個學區的IT部門,Jeremy擁有使用JavaScript、PHP和C#開發Web解決方案的經驗。他寫了許多涉及XSLT、WebForms和C#的文章。

Joe Fawcett從1970年就開始了編程生涯,從學校畢業後在IT領域工作的時間很短。在1994年回到軟體開發行業之前,經歷了許多不同的工作。在2003年,他獲得了微軟頒發的XML領域的MVP(最有價值專家,一般是從社區貢獻和技術能力兩方面評價)獎項。Joe現在在倫敦工作,是一個提供職業認證和業務培訓等服務的金融培訓公司的開發人員。

書評

譯者序

在筆者翻譯《Ajax修煉之道》接近尾聲時,dlee(《Ajax實戰》的譯者)向我推薦了這本Professional Ajax。在《Ajax修煉之道》一書的翻譯過程中,我深切地感受到“程式設計師修煉之道”系列書籍一貫的寫作風格,語言簡潔、明快,知識系統、完整,通過深入淺出的語言很容易就可以讓一個初學者完成Ajax內功心法的修煉。

但作為一本僅有300頁左右的薄書,《Ajax修煉之道》不可能包括更多的實現細節,因此要想進一步地在實戰中提高自己的技藝,還需要一些“武功招式”,否則僅有深厚的內力也不足以“臨場殺敵”。稍加翻閱Professional Ajax一書之後,我就確定這正是一本講述“武功招式”的好書,因此就決定趁勢繼續開始本書的翻譯。

在本書的前2章中,以簡潔、明快的風格闡述了Ajax的演化歷史和技術前身,以及Ajax最基本的使用方法,使得該書自成體系,即便是初學者也能夠很快開始自己的Ajax學習歷程。第3章則將Ajax的套用場景抽象成為通信控制和失效處理模式,對Ajax針對不同需求的解決方案提供了完整的參考。

接著,在本書的第4~8章中,分別針對XML(包括XPath和XSLT)、RSS/Atom、Web服務、JSON、Web用戶界面組件等五個主題,闡述了如何將Ajax和這些技術有效地結合在一起,經典的實例、完整的原始碼,都將給讀者帶來“實戰”的指導。在此之後,本書講述了一個利用Ajax開發的Web Mail系統實例(第9章 AjaxMail),來說明如何通過Ajax及相關技術達到Gmail所實現的用戶體驗。

最後,本書詳細地講述了JPSpan、DWR和Ajax.NET三種Ajax框架的使用方法,對於PHP、JSP、ASP.NET的Web開人員,都可以找到適合自己的框架。

在本書的翻譯過程中,原作者文思流暢、代碼完整,這都給筆者留下了深刻的印象,也是筆者翻譯的多本書籍中感到最為暢快的一本。如果一定要指出它的缺點,那么可能只有一點,在大部分章節中,文中例子使用的是現在使用率稍低於Java和.NET的PHP。不過,Ajax關注的是前端技術,後台代碼的實現並非本書的重點,加上PHP代碼的易讀性,並不會給讀者帶來太多的困難。筆者所在的開發團隊中,就基於這些例子,簡單地修改成了ASP.NET的實現版本,整個過程沒有遇到太多的周折。

Ajax作為一項熱點技術,近期相關的書籍也層出不窮,作為《Ajax修煉之道》和本書的譯者、加上對《Ajax實戰》、《Ajax基礎教程》的閱讀體驗,在此與大家分享一下對這四本書籍的看法:

① 如果你想快速地了解Ajax技術,可以選擇《Ajax基礎教程》和《Ajax修煉之道》;

②如果你想迅速提高自己動手實現Ajax解決方法,建議看《Ajax基礎教程》和本書;

③ 如果你想用最短的時間系統化地了解Ajax的方方面面,《Ajax修煉之道》是首選;

④如果你想深入研究Ajax技術,那么《Ajax實戰》是不可錯過的好書。

最後,在此向圖靈公司的傅志紅編輯和技術上的好友李錕(dlee)先生表示衷心的感謝,你們的支持和指導是本書順利完成的基石;感謝長年來一起合作共事的吳蘭陟(負責本書第4、6兩章的初譯)、胡冰和陳紹繼,你們為本書的翻譯提供了許多幫助。最後還要感謝母親多年來的教導,以及妻子許高芳一直以來的默默支持與鼓勵。

鑒於筆者水平有限,因此在此必須感謝每一位讀者,希望能夠得到您的反饋與批評,歡迎來信([email protected])與我一起交流與Ajax、Web 2.0、B/S軟體開發的更多話題。

徐鋒

2006年5月於廈門紫荊園

目錄

第1章 什麼是Ajax

1.1 Ajax的誕生

1.2 Web的演化過程

1.2.1 JavaScript

1.2.2 幀

1.2.3 隱藏幀技術

1.2.4 動態HTML和DOM

1.2.5 iframe

1.2.6 XMLHttp

1.3 真正的Ajax

1.4 Ajax原則

1.5 Ajax後面的技術

1.6 誰在使用Ajax?

1.6.1 Google Suggest

1.6.2 Gmail

1.6.3 Google Maps

1.6.4 A9

1.6.5 Yahoo!News

1.6.6 Bitflux Blog

1.7 混亂與爭議

1.8 小結

第2章 Ajax基礎

2.1 HTTP基礎

2.1.1 HTTP請求

2.1.2 HTTP應答

2.2 Ajax通訊技術

2.2.1 隱藏幀技術

2.2.2 XMLHttp請求

2.3 進一步考慮

2.3.1 同源策略

2.3.2 快取的控制

2.4 小結

第3章 Ajax模式

3.1 通信控制模式

3.1.1 預先獲取

3.1.2 頁面預載入的例子

3.1.3 提交節流

3.1.4 表單增量驗證的實例

3.1.5 欄位增量驗證實例

3.1.6 定期刷新

3.1.7 新評論提示實例

3.1.8 多階段下載

3.1.9 附加信息連結實例

3.2 失效處理模式

3.2.1 取消待處理的請求

3.2.2 重試

3.3 小結

第4章 XML、Xpath和XSLT

4.1 瀏覽器對XML的支持

4.1.1 IE中的XML DOM

4.1.2 Firefox中的XML DOM

4.1.3 跨瀏覽器兼容的XML

4.1.4 基本的XML實例

4.2 瀏覽器對Xpath的支持

4.2.1 XPath概述

4.2.2 IE中的XPath

4.2.3 使用命名空間

4.2.4 Firefox中的XPath

4.2.5 使用命名空間解析器

4.2.6 跨瀏覽器兼容的XPath

4.3 瀏覽器對XSLT的支持

4.3.1 XSLT概述

4.3.2 IE中的XSLT

4.3.3 Firefox中的XSLT

4.3.4 跨瀏覽器兼容XSLT

4.3.5 重訪“最佳選擇”

4.4 小結

第5章 基於RSS/Atom的Syndication

5.1 RSS

5.1.1 RSS 0.91

5.1.2 RSS 1.0

5.1.3 RSS 2.0

5.2 Atom

5.3 FooReader.NET

5.3.1 客戶端組件

5.3.2 伺服器端組件

5.3.3 將客戶端和伺服器連線起來

5.4 安裝

5.5 測試

5.6 小結

第6章 Web服務

6.1 相關技術

6.1.1 SOAP

6.1.2 WSDL

6.1.3 REST

6.2 .NET連線

6.3 設計決策

6.4 創建Windows平台的Web服務

6.4.1 系統需求

6.4.2 配置IIS

6.4.3 編寫Web服務

6.4.4 創建程式集

6.5 Web服務和Ajax

6.5.1 創建測試工具

6.5.2 IE使用的方法

6.5.3 Mozilla使用的方法

6.5.4 通用方法

6.6 跨域的Web服務

6.6.1 Google Web API 服務

6.6.2 創建代理

6.7 小結

第7章 JSON

7.1 什麼是JSON?

7.1.1 數組表示

7.1.2 對象表示

7.1.3 混合表示

7.1.4 JSON語法

7.1.5 JSON編碼和解碼

7.2 JSON vs. XML

7.3 服務端JSON工具

7.3.1 JSON-PHP

7.3.2 其它工具

7.4 創建自動提示的文本框

7.4.1 功能概述

7.4.2 HTML部分

7.4.3 資料庫表

7.4.4 體系結構

7.4.5 類

7.4.6 自動建議控制項

7.4.7 建議提供者

7.4.8 伺服器端組件

7.4.9 客戶端組件

7.5 小結

第8章 Web網站的用戶界面組件

8.1 創建滾動新聞用戶界面組件

8.1.1 伺服器端組件

8.1.2 客戶端組件

8.1.3 對新聞設定樣式

8.1.4 實現滾動新聞用戶界面組件

8.2 創建天氣用戶界面組件

8.2.1 Weather.com提供的SDK

8.2.2 伺服器端組件

8.2.3 客戶端組件

8.2.4 從伺服器獲取數據

8.2.5 定製天氣用戶界面組件

8.2.6 實現天氣用戶界面組件

8.3 創建Web搜尋用戶界面組件

8.3.1 伺服器端組件

8.3.2 客戶端組件

8.3.3 定製Web搜尋用戶界面組件

8.3.4 實現Web搜尋用戶界面組件

8.4 創建網站搜尋用戶界面組件

8.4.1 伺服器端組件

8.4.2 客戶端組件

8.4.3 定製網站搜尋用戶界面組件

8.4.4 實現網站搜尋用戶界面組件

8.5 小結

第9章 AjaxMail

9.1 需求

9.2 架構

9.2.1 將使用的資源

9.2.2 資料庫表

9.2.3 配置檔案

9.2.4 AjaxMailbox類

9.2.5 執行操作

9.3 用戶界面

9.3.1 資料夾視圖

9.3.2 閱讀視圖

9.3.3 寫郵件視圖

9.3.4 布局

9.4 整合

9.4.1 輔助函式

9.4.2 Mailbox對象

9.4.3 回調函式

9.4.4 事件處理函式

9.5 最後一步

9.6 小結

第10章 Ajax框架

10.1 JPSpan

10.1.1 工作原理

10.1.2 安裝JPSpan

10.1.3 創建服務端頁面

10.1.4 創建客戶端頁面

10.1.5 錯誤處理

10.1.6 類型轉換

10.1.7 JPSpan小結

10.2 DWR

10.2.1 工作原理

10.2.2 安裝DWR

10.2.3 創建客戶端頁面

10.2.4 使用自定義類

10.2.5 錯誤處理

10.2.6 dwr.xml中的更多配置項

10.2.7 轉換器

10.2.8 DWR小結

10.3 Ajax.NET

10.3.1 工作原理

10.3.2 安裝Ajax.NET

10.3.3 創建Web頁面

10.3.4 簡單類型和複雜類型

10.3.5 Session狀態

10.3.6 Ajax.NET小結

10.4 小結

相關詞條

相關搜尋

熱門詞條

聯絡我們