《AJAX實戰》ajax in action電子版

添加時間:2006-4-29 22:38:05 軟件圖片:
授權形式:免費
適用平臺:Win98/WinMe/WinNT/Win2000/WinXP
軟件語言:英文
下載次數: <script src="http://www.okajax.com/DownClick.asp?DownLoadID=064292244439985" type="text/javascript"></script>
文件大小:6.29M
開 發 商:Home Page
推薦級別:★★★★★★
詳細介紹:

作者:Dave Crane Eric Pascarello
Dave Crane:英國資深Web開發人員,在智能家居、銀行和金融系統領域應用DHTML和Ajax等客戶端技術擁有豐富的經驗。
Eric Pascarello 資深ASP.NET開發人員,著名Java社區JavaRanch的 HTML與JavaScript版主。
Darren James 是開源Ajax框架的架構師。
內容提要
本 書是目前Ajax領域最爲全面深入的一本著作,其中不僅有對於基礎知識的介紹,還有對於Ajax開發中重大的體系架構問題的深入探討,總結了大量Ajax 開發中的設計模式,並討論了框架、安全性與性能等等。書中提供了幾個典型的例子,兼顧各種開發平臺,這些例子的代碼稍作修改就可以直接應用於項目開發之 中,代碼源文件可以從圖靈網站下載。
本書內容廣泛且深入,同時適用於各個層次的Web應用開發人員。

前言
有時候,在你發 覺之前,命運之神已經降臨多時了。20世紀90年代初期,在我使用的各種有趣的新技術之中,一種稱爲JavaScript的小腳本語言剛剛嶄露頭角。我很 快意識到,儘管名字叫JavaScript,它其實與我心愛的Java沒有任何關係,但是從此它卻與我結下了不解之緣。
90年代後期,我開始爲數字機頂盒技術的早期採用者開發軟件。其中主要軟件部分的用戶界面完全使用JavaScript編寫,我成爲一個開發小組的技術負責人,負責使用這種語言編寫窗口管理代碼、調度程序和各種巧妙代碼。“多麼神奇啊!”我想,“它總是讓人意想不到。”
此 後,我轉向了要求更高的工作——爲會說話的未來智能家居開發企業消息中樞(backbone)和各種用戶界面組件。我是靠Java方面的技能被錄用的,但 是很快我又在編寫奇妙的JavaScript用戶界面了。令人驚奇地是,我發現一些人居然鄭重其事地在用這種腳本語言來編寫框架。很快,我使用了Mike Foster開發的早期版本的x庫(你將在本書偶爾看到它的身影)。一天下午,在開發一個郵件和文本信息論壇時,我有了一個不可思議、令人興奮的想法:在 隱藏幀(hidden frame)中檢查新的消息,無需刷新屏幕就可以將消息添加到用戶界面中。經過幾個小時的狂熱編碼,我成功了,甚至解決了如何用顏色來呈現新的消息,使得 它們容易被用戶注意到。“多有趣啊!”我想,隨後就又回去編寫那些正經代碼了。我還不知道,在同一時間,Eric Costello、Erik Hatcher、Brent Ashley和其他人正在考慮相同的事情,而微軟也正在爲其Outlook Web Access設計XMLHttpRequest。
命運之神還在緊隨着我的腳步。我的下一個工作可以說是責任重大——爲頂級的大型銀行開發軟件。我 們混合使用了Java和JavaScript,並且使用了隱藏幀和其他的技巧。我的團隊現在維護着超過1.5M字節的代碼——除了使用由JSP生成的代碼 外,全部是靜態的JavaScript。其中還沒有算上圖片資源。我們用它來開發上百個操作員使用的一個應用,這個應用管理着價值數以百萬美元的帳戶。你 的銀行帳戶有可能就是使用這個軟件來管理的。
在此期間,我沒有完全意識到,JavaScript已經長大成人了。在2005年2月,Jesse James Garrett提供了完整拼圖中缺失的一塊——他爲我們過去幾年偷偷摸摸地私自使用的“跨瀏覽器異步富客戶端動態HTML客戶服務器技術”(cross- browser-asynchronous-rich-client-dynamic-HTML-client-server technology)取了一個簡潔而乾脆的名字:Ajax。
正如他們所說的,以後的一切已經載入史冊。Ajax現在正在引起廣泛興趣。 Prototype、Rico、Dojo、qooxdoo、Sarissa和許多其他框架的開發者正在編寫大量優秀的代碼。框架已經多得不可勝數,但是我 們還是決定嘗試一下。在附錄C中,我們列舉了大多數值得關注的框架。生活如此美好,我從來沒有像現在這樣享受計算機工作。
我們遠未大功告成,這個 領域還在發展之中。當我在2005年9月對5月撰寫的第一章進行最後修改時,我吃驚地看到這個領域取得的巨大進展。這個主題仍然有很多值得思考的地方,接 下來兩年將會令人無比興奮。在寫作本書的旅程中,我非常幸運地有Eric和Darren一路相伴。
我希望你也會與我們同行——而且感到不虛此行!

Dava Crane

譯者序

普遍來說,中國人缺乏匠人的氣質。“匠人”這個詞在中國幾乎是一個貶義詞。例如說:“xx不過只是一個匠人”。但是其實國內的軟件行業正是缺乏一大批對於自己的工作精益求精的軟件工匠,這纔是國內軟件行業的主要問題所在。
相比之下,日本人是一個非常有匠人氣質的民族。手藝精湛的匠人自古以來在日本都受到普遍的尊重。在這個方面,我們需要向日本人學習的地方有很多。
自 從Pete McBreen所著的Software Craftsmanship(中文版名爲《軟件工藝》,人民郵電出版社出版)出版後,“軟件工藝”爲軟件行業的從業者帶來了“軟件工程”之外的另一個重要 的隱喻。在此之前,“軟件工程” 這個隱喻在軟件行業中一直佔據着絕對的話語權。軟件工藝並非是爲了徹底顛覆軟件工程,而是爲了促使大家將目光更多地投向精研軟件建造過程中的工藝問題。這 本書將軟件開發者分成了三個層次:學徒開發者(Apprentice Developer)、技師開發者(Journeymen Developer)和軟件工匠(Craftsman)。
Ajax in Action的作者無疑已經達到了軟件工匠的層次,本書充分體現出了他們的技術水平。我將本書評價爲大匠的傑作。時間將可以證明,本書在Ajax技術著作 的殿堂中,會像米開朗基羅的大衛那樣成爲不朽之作。這本書就像大衛那樣充滿了美感,其架構的複雜、計算的精確令人敬畏,堪稱是工藝學和藝術的完美結合。
想要開山立派,必須高屋建瓴。達摩祖師、張三丰無不是這樣的人物。本書作爲Ajax技術領域的開山之作,同樣也達到了這樣的高度。雖然它是Ajax領域的第一本著作,但是它所達到的高度至今仍然是同類著作難以企及的。

某 個技術領域的第一本著作往往並不是該領域中最好的著作,例如,大量的開發實踐已經證明早年那些介紹J2EE開發的書價值是有限的,直到Rod Johnson寫出了經典的J2EE without EJB,對於EJB的盲目推崇才宣告結束。到目前爲止,與Ajax技術相關的著作在國外已經出版了10本以上,國內也在今年開始陸續出版大量相關的著作, 包括翻譯和原創。然而,我們非常驚訝地發現,本書目前仍然是這個領域最爲全面和深入的一本書。其中不僅包含了耐心細緻介紹的基礎知識以及精心設計的實戰例 子,更重要的是,還涵蓋了對Ajax開發中重大的體系架構問題的深入探討,並且總結出了大量Ajax開發設計模式,因此,認爲本書是一本講體系架構和設計 模式的書是毫不過分的。
Ajax領域的新框架和組件庫層出不窮,一些功能非常簡單,一些則是過度的設計或者存在着嚴重的設計問題。Ajax開發者 對於應該選擇什麼樣的框架感到茫然無助,毫無疑問,Ajax in Action可以幫助你。本書是目前已經出版的唯一一本深入探討Ajax開發中的架構問題的著作,這使得它顯得卓而不羣。如果不去深入研究Ajax開發中 的架構問題,Ajax開發領域將會再現J2EE開發領域早年的那種混亂局面,本書將會使得Ajax開發秩序井然。我們需要的不完全是技術本身,還需要思考 和選擇的眼光。Ajax in Action正是能夠帶給讀者選擇的眼光的著作。它使讀者能夠全方位地理解Ajax開發,不僅僅是看到衆多的樹木,更重要地是看到整片的森林。架構設計的 合理性和靈活性將是選擇Ajax框架的一個首要因素,將能決定任何Ajax框架未來的命運。一年之後,存在架構設計問題的很多框架都將會退出歷史舞臺。
盡 管如此,作者並不是只討論重大的架構問題,而忽略了具體的實現細節,這樣往往會流於空泛。作者不僅僅是卓越的評論家,更是卓越的實幹家。對於書中介紹的每 一個架構和模式都給出了精心設計的例子。對於Ajax開發需要的所有基礎知識,作者都通過例子做了耐心細緻的講解。書中花費了一半的篇幅闡述了大量 Ajax開發的實例,展示了Ajax開發的方方面面。每一個實例中的代碼最後都被重構爲一個可以重用的組件,這些組件的不需要做任何修改,或者只需要稍作 修改就可以直接應用在讀者的項目開發之中,幫助用戶得到更好的交互體驗。
在本書中,有令人高山仰止的體系架構和設計模式的分析,有潺潺流水式的深 入細緻的實例講解。娓娓道來,帶給讀者100%一對一的閱讀體驗,雖然討論的內容很多,但是達到了形散神不散的效果,這個神就是改善Web應用的可用性, 可以說,本書中所有關注的問題都是與改善Web應用的可用性相關的。這正是Ajax技術誕生的使命,也應該是任何一個Ajax開發者需要牢記的。Ajax 開發並不是一個純粹的技術問題,因爲這裏還涉及到另一個重要的利益相關人,就是最終用戶。我們始終要把最終用戶的感受放在首要位置,才能開發出出色的 Ajax應用。
這本書因爲其內容的廣泛和深入,同時適合於Ajax開發的初學者和提高者,兩種類型的開發者都能從中得到巨大的收穫。對於Ajax 開發者來說,本書可以作爲案頭常備的著作。作者就像是一位吹着笛子的魔法師,循序漸進、深入淺出地將讀者領進了Ajax這個迷人的殿堂。本書堪稱是一片富 饒的寶藏,等待着你——勇敢的探險家去探索和發現。
李錕
2006年4月4日於上海

目錄


第一部分 重新思考Web應用
第1章 一種新的Web設計方法
1.1 爲什麼需要Ajax富客戶端?
1.1.1 比較用戶體驗
1.1.2 網絡延遲
1.1.3 異步交互
1.1.4 獨佔或瞬態的使用模式
1.1.5 忘掉Web
1.2 Ajax的四個基本原則
1.2.1 瀏覽器中的是應用而不是內容
1.2.2 服務器交付的是數據而不是內容
1.2.3 用戶交互變得流暢而連續
1.2.4 有紀律的嚴肅編程
1.3 真實世界中的Ajax富客戶端
1.3.1 現狀
1.3.2 Google Maps
1.4 Ajax的替代方案
1.4.1 基於Macromedia Flash的方案
1.4.2 Java Web Start及其相關技術
1.5 小結
1.6 資源
第2章 Ajax新手上路
2.1 Ajax的關鍵元素
2.2 用JavaScript改善用戶體驗
2.3 用CSS定義應用的外觀
2.3.1 CSS選擇器
2.3.2 CSS樣式屬性
2.3.3簡單的CSS例子
2.4 用DOM組織視圖
2.4.1 使用JavaScript操作DOM
2.4.2 尋找DOM節點
2.4.3 創建DOM節點
2.4.4 爲文檔增加樣式
2.4.5 捷徑:使用innerHTML屬性
2.5 使用XML技術異步加載數據
2.5.1 IFrame
2.5.2 XMLDocument和XMLHttpRequest對象
2.5.3 向服務器發送請求
2.5.4 使用回調函數監視請求
2.5.5 完整的生命週期
2.6 Ajax有何不同
2.7 小結
2.8 資源
第3章 使Ajax秩序井然
3.1 從混沌到秩序
3.1.1 模式:創造一個通用的詞彙
3.1.2 重構與Ajax
3.1.3 保持均衡
3.1.4 重構實戰
3.2 一些小型重構的案例研究
3.2.1 跨瀏覽器不一致性:Facade和Adapter模式
3.2.2 管理事件處理函數:Observer模式
3.2.3 重用用戶操作處理函數:Command模式
3.2.4 保持對資源的唯一引用:Singleton模式
3.3 模型-視圖-控制器
3.4 Web服務器端的MVC
3.4.1 不使用模式的Ajax Web服務器
3.4.2 重構領域模型
3.4.3 從表現中分離內容
3.5 第三方的庫和框架
3.5.1 跨瀏覽器庫
3.5.2 UI組件和UI組件套件
3.5.3 應用框架
3.6 小結
3.7 資源
第二部分 核心技術
第4章 作爲應用的頁面
4.1一種不同類型的MVC
4.1.1 以不同的規模重複MVC模式
4.1.2 在瀏覽器端應用MVC
4.2 Ajax 應用中的視圖
4.2.1 將邏輯從視圖中分離
4.2.2 保持視圖與邏輯的分離
4.3 Ajax 應用中的控制器
4.3.1 傳統的JavaScript事件處理函數
4.3.2 W3C 事件模型
4.3.3 在JavaScript中實現靈活的事件模型
4.4 Ajax 應用中的模型
4.4.1 使用JavaScript爲業務領域建模
4.4.2 與服務器交互
4.5 從模型生成視圖
4.5.1 JavaScript對象的反射
4.5.2 處理數組和對象
4.5.3 添加控制器
4.6 小結
4.7 資源
第5章 服務器的角色
5.1 與服務器配合工作
5.2 編寫服務器端代碼
5.2.1 流行的實現語言
5.2.2 N層體系架構
5.2.3 維護客戶端和服務器端的領域模型
5.3 大局觀:通用的服務器端設計
5.3.1 不使用框架進行簡單的Web服務器編碼
5.3.2 使用Model2工作流框架
5.3.3 使用基於組件的框架
5.3.4 使用面向服務的體系架構
5.4 細節:交換數據
5.4.1 僅限於客戶端的交互
5.4.2 介紹行星瀏覽器的例子
5.4.3 從Web頁面的角度思考:以內容爲中心的交互
5.4.4 從插件的角度思考:以腳本爲中心的交互
5.4.5 從應用的角度思考:以數據爲中心的交互
5.5 向服務器寫數據
5.5.1 使用HTML表單
5.5.2 使用XMLHttpRequest對象
5.5.3 有效地管理用戶的更新
5.6 小結
5.7 資源
第三部分 專業級的Ajax
第六章 用戶體驗
6.1 做正確的事:開發高質量的應用
6.1.1 響應性
6.1.2 健壯性
6.1.3 一致性
6.1.4 簡單性
6.1.5 付諸實踐
6.2 讓用戶知情
6.2.1 處理自己請求的響應
6.2.2 處理其他用戶提交的更新
6.3 爲Ajax設計通知系統
6.3.1 對通知建模
6.3.2 定義用戶界面需求
6.4 實現通知框架
6.4.1 顯示狀態欄圖標
6.4.2顯示詳細的通知信息
6.4.3 集成
6.5使用通知框架處理網絡請求
6.6 表示數據的時效性
6.6.1定義簡單的突出顯示格式
6.6.2 用Scriptaculous效果庫進行突出顯示
6.7 小結
6.8 資源
第7章 安全性與Ajax
7.1 JavaScript與瀏覽器安全性
7.1.1 引入來源服務器策略
7.1.2 Ajax的相關考慮
7.1.3 子域問題
7.1.4 跨瀏覽器安全性
7.2 使用遠程服務進行通信
7.2.1 代理遠程服務
7.2.2 使用Web服務
7.3 保護機密數據
7.3.1 中間人
7.3.2 使用安全HTTP
7.3.3 在普通HTTP上使用JavaScript加密數據
7.4 Ajax數據流的訪問策略
7.4.1 設計安全的Web層
7.4.2 限制對Web數據的訪問
7.5 小結
7.6 資源
第8章 性能
8.1 什麼是性能?
8.2 JavaScript執行速度
8.2.1 測定應用時間的艱難方式
8.2.2 使用Venkman性能分析器
8.2.3 優化Ajax應用的執行速度
8.3 JavaScript內存使用量
8.3.1 避免內存泄漏
8.3.2 Ajax的特殊考慮因素
8.4 考慮性能的設計
8.4.1 測量內存使用量
8.4.2簡單示例
8.4.3 結果:如何將內存使用量縮減150倍
8.5 小結
8.6 資源
第四部分 Ajax實例研究
第9章 動態雙組合功能
9.1 雙組合腳本
9.1.1 客戶端解決方案的侷限性
9.1.2 服務器端解決方案的限制
9.1.3 基於Ajax的解決方案
9.2 客戶端體系架構
9.2.1 設計表單
9.2.2 設計客戶端/服務器端交互
9.3 服務器端的VB.NET實現
9.3.1 定義XML響應格式
9.3.2 編寫服務器端代碼
9.4 顯示結果
9.4.1 遍歷XML文檔
9.4.2 應用CSS
9.5 高級問題
9.5.1 允許多選擇查詢
9.5.2 將雙組合擴展爲三組合
9.6 重構
9.6.1 新的和改進過的net.ContentLoader
9.6.2 創建雙組合組件
9.7 小結
第10章 輸入前提示
10.1 10.1 考察輸入前提示應用
10.1.3 10.1.1常見的輸入前提示的特徵
10.1.4 10.1.2 Google Suggest
10.1.3 實戰開發Ajax輸入前提示
10.2 服務器端框架:C#
10.2.1 服務器與數據庫
10.2.2 測試服務器端代碼
10.3 客戶端框架
10.3.1 HTML
10.3.2 JavaScript
10.3.3 訪問服務器
10.4 添加功能:包含不同查詢的多個元素
10.5 10.5 重構
10.5.1 第一天:開發TextSuggest組件的遊戲計劃
10.5.2 第2天:創建TextSuggest――清晰而且可配置
10.5.3 第3天:激活Ajax
10.5.4 第4天:事件處理
10.5.5 第5天:提示的彈出框的UI
10.5.6 重構報告
10.6 小結
第11章 增強的Ajax Web門戶
11.1 正在進化的門戶
11.1.1 傳統門戶
11.1.2 擁有豐富的用戶界面的門戶
11.2 使用Java的Ajax門戶的體系架構
11.3 Ajax登錄
11.3.1 用戶表
11.3.2 服務器端的登錄代碼:用Java實現
11.3.3 客戶端登錄框架
11.4 實現DHTML窗口
11.4.1 門戶窗口數據庫
11.4.2 門戶窗口的服務器端代碼
11.4.3 添加外部JS庫
11.5 添加Ajax自動保存功能
11.5.1 修改庫的代碼
11.5.2 自動保存信息到數據庫
11.6 重構
11.6.1 定義構造器
11.6.2 修改AjaxWindows.js庫
11.6.3 指定protal命令
11.6.4 執行Ajax處理
11.6.5 重構報告
11.7 小結
第12章 使用XSLT的動態搜索
12.1 理解搜索技術
12.1.1 考察傳統的搜索
12.1.2 幀和彈出窗口方法的缺點
12.1.3 研究使用Ajax和XSLT的動態搜索
12.1.4 向客戶端發回結果
12.2 客戶端的代碼
12.2.1 設置客戶端
12.2.2 啓動搜索過程
12.3 服務器端的PHP代碼
12.3.1創建XML文檔
12.3.2 創建XSLT文檔
12.4合併XSLT和XML文檔
12.4.1 使用微軟的IE
12.4.2 使用Mozilla
12.5 完成搜索
12.5.1 應用層疊樣式表
12.5.2 改善搜索
12.5.3 決定使用XSLT
12.5.4 克服Ajax書籤支持的缺陷
12.6 重構
12.6.1 XSLTHelper
12.6.2 動態搜索組件
12.6.3 重構報告
12.7 小結
第13章 使用AJAX創建獨立的應用
13.1 從外部讀取信息
13.1.1 查找XML提要
13.1.2 RSS結構
13.2 創建豐富的用戶界面
13.2.1 流程
13.2.2不使用表格的HTML框架
13.2.3 採用CSS方法做排版
13.3 加載RSS提要
13.3.1 全局作用域
13.3.2 Ajax預加載功能
13.4 增加豐富的漸變效果
13.4.1 跨瀏覽器的不透明規則
13.4.2 實現淡入/淡出漸變
13.4.3 集成JavaScript定時器
13.5 附加功能
13.5.1 插入額外提要
13.5.2集成跳過和暫停功能
13.6 避免項目的限制
13.6.1克服Mozilla的安全限制
13.6.2修改應用的範圍
13.7 重構
13.7.1 RSS閱讀器模型
13.7.2 RSS閱讀器視圖
13.7.3 RSS閱讀器控制器
13.7.4 重構報告
13.8 小結
附錄A Ajax工具箱
A.1 選擇正確的工具集更加聰明地工作
A.1.1獲取適合的工具
A.1.2 創建自己的工具
A.1.3 維護工具箱
A.2 編輯器和IDE
A.2.1 在代碼編輯器中需要什麼功能
A.2.2 當前的工具
A.3 調試器
A.3.1爲什麼要使用調試器
A.3.2 JavaScript調試器
A.3.3 HTTP 調試器
A.3.4創建自己的跨瀏覽器輸出控制檯
A.4 DOM 檢查器
A.4.1 使用Mozilla DOM 檢查器
A.4.2 IE的DOM 檢查器
A.5 安裝Firefox擴展
A.6 資源
附錄B 面向對象程序員的JavaScript
B.1 JavaScript不是Java
B.2 JavaScript中的對象
B.2.1創建一個開箱即用(ad hoc)的對象
B.2.2 構造函數、類和原型
B.2.3 擴展內建類
B.2.4 原型的繼承
B.2.5 JavaScript對象的反射
B.2.6 接口和“鴨子類型”
B.3 方法和函數
B.3.1 函數是一等公民
B.3.2 向對象附加函數
B.3.3 從其他對象借用函數
B.3.4 Ajax事件處理和函數上下文
B.3.5 JavaScript中的閉包
B.4 小結
B.5 資源
附錄C Ajax框架和庫
 
下載地址(英文版):
點擊下載--鏡像下載
點擊下載--本地下載
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
發佈了36 篇原創文章 · 獲贊 0 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章