軟體設計層次的Ajax書,很認真的思考 Single Page Application。前三章引入Design Patterns、重構的概念到Javascript,將 Web Page提升到應用程式的層次。四五章很精采地分析架構,包括不同層次的MVC觀點,以及各種框架的大局觀跟分類,其中關於Ajax如何交換資料提供了很好的思考,以下是我的筆記(Rails是我加的,書上沒有):
內容中心的互動 (content)
- Server 傳回 HTML 片段,Client 在特定位置更新顯示。
- 簡單直覺,撰寫容易。
- 功能有限,畫面上的變化只限於固定矩形區域,無法進行複雜的DOM操作。
- Rails使用Prototype加上配套的 Ajax helper 即可達成。
腳本中心的互動 (scripting)
- Server 傳回 Javascript 片段,Client 直接執行。
- 功能彈性大,可自由操作DOM,多處更新。
- Rails 支援在 Remote Javascript Template (RJS),使用Ruby語法撰寫Javascript,傳給Client執行,減少撰寫raw Javascript。
資料中心的互動 (data)
- Server 傳回 XML 或 JSON 資料,Client 的 Javascript 解析處理(或使用XSLT)。
- XML的解析較麻煩,現在流行用JSON(JavaScript Object Notation)。
- 上述兩種架構與Client相依,但資料中心即Web Service(REST)架構,具可重複使用性(可供別的前端使用)。
- Rails支援 XML Template跟JSON。
- 因為剖析資料的負擔完全放在 Client 端,所以 Client 端的Javascript程式或XSLT工程較大。
第六章 使用者體驗 實作了一個通知框架,第七章講安全性,第八章講效能及記憶體洩漏(memory leak)問題。剩下後半本則是一章一案例。
另一篇書評 : Relevance Review #5: Ajax in Action
註: 之前寫的 ajax 傳送格式比較 : XML, HTML, or JSON?