-- 會員 / 註冊 --
 帳號:
 密碼:
  | 註冊 | 忘記密碼
站長推薦
NT售價: 225
NT售價: 345
NT售價: 295
NT定價: 580
優惠價:79458
NT定價: 650
優惠價:75488

1/17 新書到! 1/12 新書到! 1/4 新書到! 12/29 新書到!
C.G.Next購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUGRevit
PhotoShopCorelDrawIllustratorAutoCadMasterCamSolidWorksCreo
CC++Java遊戲程式Linux嵌入式PLCFPGAMatlabNuke
駭客資料庫Oracle搜索引擎影像處理FluentSPSSANSYSUnity
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
C#HadoopPythonstm32手機程式CortexLabviewAndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

基于MVC的JavaScript Web富應用開發

( 簡體 字)
作者:李晶,張散集類別:1. -> 程式設計 -> 網路編程 -> Javascript
譯者:
出版社:電子工業出版社基于MVC的JavaScript Web富應用開發 3dWoo書號: 45583
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:11/1/2016
頁數:308
光碟數:0
站長推薦:
印刷:語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121301797
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

O’Reilly Media, Inc.介紹
O’Reilly Media通過圖書、雜志、在線服務、調查研究和會議等方式傳播創新知識。自 1978年開始, O’Reilly一直都是前沿發展的見證者和推動者。超級極客們正在開創著未來,而我們關注真正重要的技術趨勢——通過放大那些“細微的信號”來刺激社會對新科技的應用。作為技術社區中活躍的參與者, O’Reilly的發展充滿了對創新的倡導、創造和發揚光大。
O’Reilly為軟件開發人員帶來革命性的“動物書”;創建第一個商業網站( GNN);組織了影響深遠的開放源代碼峰會,以至于開源軟件運動以此命名;創立了 Make雜志,從而成為 DIY革命的主要先鋒;公司一如既往地通過多種形式締結信息與人的紐帶。 O’Reilly的會議和峰會集聚了眾多超級極客和高瞻遠矚的商業領袖,共同描繪出開創新產業的革命性思想。作為技術人士獲取信息的選擇, O’Reilly現在還將先鋒專家的知識傳遞給普通的計算機用戶。無論是通過書籍出版,在線服務或者面授課程,每一項 O’Reilly的產品都反映了公司不可動搖的理念——信息是激發創新的力量。
業界評論
“O’Reilly Radar博客有口皆碑。 ”
——Wired
“O’Reilly憑借一系列(真希望當初我也想到了)非凡想法建立了數百萬美元的業
務。 ”
——Business 2.0
“O’Reilly Conference是聚集關鍵思想領袖的絕對典范。 ”
——CRN
“一本 O’Reilly的書就代表一個有用、有前途、需要學習的主題。 ”
——Irish Times
“Tim是位特立獨行的商人,他不光放眼于最長遠、最廣闊的視野并且切實地按照 Yogi Berra的建議去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顧過去 Tim似乎每一次都選擇了小路,而且有幾次都是一閃即逝的機會,盡管大路也不錯。 ”
——Linux Journal

譯者序
從第一眼看到封面上這只憨憨的貓頭鷹開始,就深深地喜歡上了這本 JavaScript Web Applications,讀了簡介和目錄之后就已經不能自拔了。這幾年鮮有深入講架構級 web app的好書,這讓這本 JavaScript Web Applications更加難得,作為 O’Reilly第一本專注于純高端 JavaScript架構思想的書,凡是有一點“架構情節”的工程師都不應當錯過。
如今 Web應用程序的開發已經越來越向傳統應用軟件開發靠攏了, Web和應用之間的界限也進一步模糊。傳統編程語言中的設計模式、 MVC、應用架構等理論也在慢慢地融入 Web前端開發。隨著服務器端 JavaScript和移動終端的興起,作為一名前端工程師,也深知自己正處在一個深刻變革的年代,面對眼花繚亂的新概念和新技術更應當把握本質、認清方向,勇于創新和實踐,而這本 JavaScript Web Applications的出現更是一陣及時雨,為我們工作中遇到的很多難題提供了解決方案和最佳實踐。同時,這本書所涵蓋的知識點非常全面,從 MVC的基本理論到網絡協議、從模塊解耦到異步編程模型、從 HTML5/CSS3到 NodeJS、從軟件測試到部署調試,對于很多前端工程師來說,這些知識正是突破自己的瓶頸所亟需的。
這本書將專注于講述如何構建“優雅又不失高水準”(state of the art)的 JavaScript應用,包括軟件架構、模板引擎、框架和庫、同服務器的消息通信等內容。書中同樣提供了大量的示例代碼,可以幫助你更深入地理解很多重要的概念。除此之外,作者在 MVC和架構方面的很多觀點都很有啟發性,即使你不是一名 JavaScript程序員,讀完本書后也會受益匪淺。
本書作者 Alex MacCaw是一名 Ruby/JavaScript程序員,是 Spine框架的開發者。在翻譯本書的過程中,我深深體會到他作為一名優秀工程師所具備的扎實的計算機專業功底和讓人敬佩的開源精神。盡管這本書包含大量的專業術語,但作者文筆輕松流暢,即使直接讀原文也絲毫不會感到枯燥,所以我們在翻譯過程中也是非常小心,生怕丟掉這種輕松流暢的閱讀感覺,盡力為大家原汁原味地呈現本書。當然由于專業知識所限,翻譯過程難免疏漏,還希望各位高手批評指正。
最后,我要感謝博文視點的張春雨在譯書過程中給予我們的幫助和信任。感謝我的好友王保平(玉伯)對很多關鍵的技術性問題提出的寶貴意見,還要感謝可愛的同事楊振楠(棟寒)、楊翰文(地極)、李燕青(霸先)、車思慧(靈玉)、陳良(舒克)的細心校對,他們給譯文提了很多中肯的建議。當然,最最需要感謝的是家中的“領導”,已經記不得多少次趕譯稿加班太晚,得到的不是你的抱怨,而是你的鼓勵,這讓我至今備感溫暖。
李晶(拔赤),張散集(一舟) 2011年 12月北京

前言
1995年隨著 Netscape瀏覽器的發布, JavaScript也作為它的組成部分進入到公眾的視野,之后 JavaScript的發展道路盡管充滿坎坷但成長飛速,如今得益于高性能的 JIT(just in time)解析引擎,(在瀏覽器端) JavaScript已經無孔不入了。僅僅在 5年以前,開發者還在使用 Ajax寫一些短小的代碼或熱衷于實現一些類似“黃色漸褪技術”的網頁特效;而現在,復雜的 JavaScript應用已經可以寫上成百上千行的代碼了。
就在去年,互聯網出現了一股追捧 JavaScript應用的浪潮,很多人開始著迷于給 Web應用加入很多桌面軟件的交互元素,增強 Web應用的用戶體驗,這種趨勢猶如星星之火迅速蔓延至整個互聯網。在過去,在瀏覽器性能不佳的情況下,用戶在進行 Web應用時每次交互都要刷新頁面,而且頁面加載很慢。而如今 JavaScript引擎已經變得異常強大,我們可以將很多交互行為植入客戶端,這樣交互的響應就會非常及時,增強體驗。
當然獲得提升的不僅僅是 JavaScript引擎的性能。盡管 CSS3和 HTML5規范現在仍在修訂之中,也已經有很多現代瀏覽器廣泛支持這些新特性了,比如 Safari、Chrome和 Firefox,IE9也在一定程度上支持這些新特性。利用這些特性可以花更少的時間做出更棒的視覺效果,而且不用花精力做圖片的切割和拼合來模擬視覺效果。現在瀏覽器的升級也很快,對 HTML5和 CSS3的支持也一天比一天好。但你還是要定義一個瀏覽器測試基準(你的應用所支持的最低標準的客戶端軟件和版本),基于此才能更加合理地選擇所需的技術。
將應用的重心從服務器遷移到客戶端并不輕松,這和構建服務器應用的方法完全不一樣。你需要想清楚架構、模板、與服務器端的通信、框架等,這些正是本書所涵蓋的內容。我將手把手教你如何構建“優雅又不失高水準”的 JavaScript應用。
本書的目標讀者
本書不是為 JavaScript初學者所寫,如果你對 JavaScript這門語言缺乏基本的了解和認識,我建議你先閱讀一些更基礎的書,比如 Douglas Crockford著的 JavaScript: The Good Parts(http://oreilly.com/catalog/9780596517748)(O’Reilly)。本書更適合有一些 JavaScript開發經驗的開發者,比如使用 jQuery類庫的開發者,或者當你希望構建更復雜、更高級的 JavaScript應用時,本書也是適合你的。此外,本書的很多章節,特別是附錄,對于有經驗的 JavaScript開發者來說也是非常有幫助的。
本書的內容組織
第 1章本章從 JavaScript的發展歷程開始,介紹了 JavaScript的發展現狀和對互聯網的巨大影響。然后輕描淡寫地介紹了 MVC的基本概念,隨后又講解了 JavaScript的構造函數、原型繼承及如何使用 JavaScript創建一個類庫。
第 2章本章主要介紹了瀏覽器的事件機制,包括事件機制的發展歷史, API設計和事件模型的行為和實現。然后講解了如何基于 jQuery綁定事件監聽、使用代理,以及創建自定義事件。最后使用發布 /訂閱模式實現了“ DOM無關”事件。
第 3章本章講解了如何在你的應用中使用 MVC模型,包括加載和操作遠程數據。我們將會提到為什么在構建 ORM類庫的時候使用 MVC和命名空間是如此之重要,以及如何使用 ORM類庫來管理模型數據。接下來講解了如何使用 JSONP和跨域 Ajax來加載遠程數據。最后介紹了如何通過使用 HTML5本地存儲和將本地存儲提交至 RESTful服務器,來實現模型數據的持久化。
第 4章本章演示了如何使用控制器模式在客戶端保持一個狀態。我們將討論如何將邏輯封裝成模塊、阻止全局命名空間的污染,然后介紹如何使用視圖來進一步簡化控制器的結構,以及怎樣在視圖中實現 DOM事件監聽。本章的最后將會討論路由選擇,包括使用 URL中的 hash片段,使用新的 HTML5 History API等技術,以及確保解釋兩種方法的利弊。
第 5章本章介紹了視圖和 JavaScript模板,給出了多種動態渲染視圖的方式,以及很多模板類庫和存儲模板的方式(使用行內形式存儲模板、使用 script標簽,以及遠程加載)。接下來,你會接觸到數據綁定的一些內容,包括使模型控制器、視圖與模型數據、視圖數據動態同步連接。
第 6章本章詳細介紹了使用 CommonJS模塊系統來做 JavaScript的依賴管理。開始會介紹 CommonJS背后的歷史和思想,接下來會講解如何在瀏覽器端使用 CommonJS模塊,包括介紹一些模塊加載器類庫,比如 Yabble和 RequireJS。然后,我們討論了如何自動在服務器端包裝模塊,從而提高性能、節省時間。本章的最后會介紹 CommonJS的一些替代方案,比如 Sprockets和 LABjs。
第 7章這里將會講到 HTML5帶給我們的一些好處:文件操作 API。本章將會涵蓋文件操作 API的瀏覽器支持情況、多文件上傳、拖曳上傳文件及使用剪切板事件。接下來會介紹使用二進制大文件和文件切割來讀文件,同時將讀取的結果在瀏覽器中輸出。然后講解使用 XHR(XMLHttpRequest)Level 2規范來實現在后臺上傳文件,最后向大家展示一個使用 jQuery Ajax API實現文件上傳進度指示的例子。
第 8章本章主要關注實時應用和 WebSocket技術的一些令人興奮的發展趨勢。首先介紹實時應用的發展歷史及各種實現技術的瀏覽器兼容性情況。然后更詳細地介紹 WebSocket和基于它的更高級的實現,包括瀏覽器兼容性和 JavaScript API。接下來展示一個使用 WebSocket實現的簡單的 RPC服務,看一下如何在客戶端和服務器端之間建立連接。然后介紹 Socket.IO和如何搭建實時架構,最后介紹用戶體驗方面的一些考量。
第 9章本章主要講解測試和調試的內容,這些內容是 JavaScript網絡應用開發過程中的關鍵環節。我們的話題將圍繞跨瀏覽器測試的主題進行展開,介紹瀏覽器基準的選擇、單元測試和測試類庫,比如 QUnit和 Jasmine。接下來,介紹自動化測試和持續集成服務器,比如 Selenium。然后講解調試相關的內容,研究了 Firefox和 WebKit網絡監測器、主控臺,以及使用 JavaScript調試器。
第 10章本章介紹了另外一個非常重要卻又極易被忽略的內容—— JavaScript網絡應用的部署。我們主要考慮性能方面,以及如何使用緩存、代碼壓縮、 gzip壓縮及其他減少應用初始化加載時間的技術。最后簡單講解了如何使用 CDN服務器來讓我們的工作事半功倍,以及如何使用瀏覽器內置的策略來提升你站點的性能。
第 11章接下來的 3章主要介紹了一些流行的 JavaScript類庫,這些類庫常用來做 JavaScript應用開發。 Spine是一個輕量級的 MVC-compliant類庫,這個類庫使用了本書中講到的很多概念。本章將會為你介紹類庫的核心部分:類、事件、模型和控制器。最后本章用一個管理應用的例子來展示本章所講到的知識點。
第 12章 Backbone是一個非常流行的類庫,使用這個類庫可以非常高效地構建 JavaScript應用,本章主要介紹這個類庫。本章會涵蓋 Backbone的核心觀念和類,比如模型、集合、控制器和視圖等。接下來會介紹使用 RESTful JSON請求從服務器同步獲取模型數據,以及如何在服務器端響應 Backbone。最后我們給出一個待辦事項列表應用的例子,來向大家展示如何使用這個類庫。
第 13章本章主要介紹了 JavaScriptMVC類庫,這是一個流行的基于 jQuery的框架,用來構建 JavaScript網絡應用。在本章中你將會學到 JavaScriptMVC的一些基礎知識,比如類、模型和控制器,同時還包含客戶端的模板及渲染視圖。本章的最后會給出一個實際的 CRUD列表的例子,給讀者展示使用 JavaScriptMVC創建抽象的、可重用的、節省內存的組件是多么的簡單。
附錄 A附錄 A中是對 jQuery的簡要介紹,如果你想溫習類庫內容,則這部分內容對你會非常有幫助。本書中大部分示例代碼都是基于 jQuery的,首先熟悉 jQuery是很重要的。這一部分會講到大部分核心的 API,比如 DOM操作、 DOM查詢和遍歷,以及事件綁定、觸發和事件代理。接下來會講解 jQuery的 Ajax API,包括 POST、GET和 JSON請求。隨后將介紹 jQuery擴展,如何使用 jQuery來封裝一個插件,讓你的代碼更具通用性。最后展示了一個實際的例子:創建一個 Growl jQuery插件。
附錄 B附錄 B的內容主要是講解 Less,Less是 CSS的超集,它使用變量、混合、操作符和優雅的規則擴展了 CSS本身的語法。利用這些規則可以極大地減少你所寫的 CSS代碼量,特別是使用 CSS3效果更佳。附錄 B包含 Less的主要的增強的語法,以及如何使用命令行工具和 JavaScript類庫來將 Less文件編譯成 CSS。
附錄 C附錄 C主要講解了 CSS3。首先介紹了一些 CSS3的背景知識、瀏覽器廠商的前綴,然后開始介紹 CSS3的主要內容,從主要附件到規格說明。這里介紹的 CSS特性
主要包括:圓角、 rgba顏色、陰影、漸變、動畫和變換。附錄的最后討論了使用
Modernizr實現的優雅降級,并展示了一個實際的使用 box-sizing規范的例子。
本書的約定
本書使用下列排版約定:
斜體 Italic用于表示新術語、 URL、電子郵件地址、文件名、文件擴展名和事件。
等寬字體 Constant width用來表示計算機代碼片段,包括命令、數組、元素、語句、操作符、變量、屬性、關鍵字、函數、類型、類、命名空間、方法、形參、實參、值、對象、事件處理程序、 XML標簽、 HTML標簽、宏指令、文件內容及命令行的輸出等。
等寬加粗字體 Constant width bold用來表示命令或者其他用戶輸入的文本。
等寬斜體 Constant width italic用來表示可被替換的字符或文本,這些字符在合適的場景和特定的條件下會被替換成其他的值。

這個圖標表示一種提示、建議或一般的消息提醒。
這個圖標表示一種警告。
中文版書中切口處的“
”表示原書頁碼,便于讀者與原英文版圖書對照閱讀,本書的索引所列
頁碼為原英文版頁碼。
附加文件
本書的附加文件都存放在 GitHub上( https://github.com/maccman/book-assets),可以直接在 GitHub上查看,也可以下載壓縮包( https://github.com/maccman/book-assets/ zipball/master)。所有這些示例代碼都以章節為單位存放,都已經包含了各自所需的類庫,本書中用到的大多數示例代碼同樣在單獨的文件中。
在本書中凡是引用這些附加文件的地方,都會以這種形式表述: assets/chapter_number/ name。
代碼約定
本書中我們以 assert()和 assertEqual()函數來展示變量的值或者函數調用的結果。 assert()是一種快捷表述方式,用來表示一個特定的變量是真值。這在自動化測試中是一種非常常見的模式。 assert()可以接收兩個參數:一個值和一個可選的消息。如果運行結果不是真值,這個函數將拋出一個異常:
var assert = function(value, msg) { if ( !value ) throw(msg || (value + " does not equal true")); };
assertEqual()是表示一個值等于另外一個值的另一種表述。它和 assert()類似,但接收兩個值。如果這兩個值不相等,則這個斷言失敗:
var assertEqual = function(val1, val2, msg) { if (val1 !== val2) throw(msg || (val1 + " does not equal " + val2)); };
這兩個函數非常簡單,正如你在示例代碼中所看到的。如果斷言失敗,你會在瀏覽器的控制臺中看到一個錯誤消息:
assert( true );
//和 assertEqual()等價 assert( false === false );
assertEqual( 1, 1 );
我們可以從代碼中看出,對象比較會失敗,除非兩個對象是指向同一塊內存的引用。解決辦法是深比較,在 assets/ch00/deep_equality.html這個例子中可以看到完整的代碼。
jQuery示例代碼
本書的大部分示例代碼都是基于 jQuery(http://jquery.com)的, jQuery是現在最流行的 JavaScript類庫,它對事件、 DOM遍歷、 DOM操作和 Ajax都做了封裝。這里我選用 jQuery是出于幾個原因的考慮,最主要的原因是 jQuery可以讓代碼變得非常簡潔,而且當下大部分人對 jQuery都非常熟悉,一看即懂。
如果你沒有使用過 jQuery,我強烈推薦你首先看一下 jQuery的文檔。它的 API非常不錯,為 DOM提供了一組非常棒的抽象的接口。可以在附錄 A中查閱到簡短的 jQuery入門內容。
Holla
Holla(http://github.com/maccman/holla)貫穿本書始終,它是一個 JS群聊應用。 Holla是一個非常不錯的示例應用,因為它和本書中大多數章節和內容都有交集。除了正文章節中對 Holla的講述之外, Holla為我們展示了:
y使用 CSS3和 HTML5來構建美觀的界面。
y拖曳上傳文件。
y使用 Sprockets和 Less來編寫代碼。
y使用 WebSocket將數據發送給客戶端。
y創建帶有狀態的 JavaScript應用。

可以從 Holla的 GitHub的代碼庫( http://github.com/maccman/holla)中將代碼復制下來,研讀一下它的代碼。本書中用到的很多例子都來自 Holla的源代碼, Holla的界面如圖 P-1。

圖P-1:Holla聊天應用程序運行界面
作者附言
本書是我在環游世界的時候完成的,這花費了我一年的時間。這一年我經歷了很多地方,這本書一部分是我在非洲時編寫的,那里沒有電也沒有網絡,還有一部分是在日本古樸幽靜的寺院中和凝霞漫爛的櫻花樹下完成的,還有一些內容是在遙遠美麗的哥倫比亞島嶼上完成的。我非常享受這段時光,希望我的這種美妙的體驗能通過我的文字傳達給每一位讀者。
這里我要特別感謝一些人。感謝 Stuart Eccles、Tim Malbon、Ben Griffins和 Sean O’Halpin,是他們給了我這個機會,讓我重新找尋到埋藏在心底的激情。同樣要感謝 James Adam、 Paul Battley和 Jonah Fox,他們是我值得尊敬的導師,諄諄之言讓我獲益良多。
同樣要感謝出版社的編輯們,他們嚴格的審校保證了本書的質量: Henrik Joreteg、Justin Meyer、Lea Verou、Addy Osmani、Alex Barbara、Max Williams和 Julio Cesar Ody。
當然最需要感謝的是我的父母,他們的默默支持是我堅實的后盾。
Safari?Books Online
Safari在線圖書是一個數字圖書館,讀者可以在這個圖書館里自選圖書,在這里可以搜索到超過 7500本技術相關的書籍創作和視頻,在這里可以迅速找到你想要的內容。
訂閱之后,你就可以閱讀在線圖書館的任意圖書的任意章節和任意視頻。你還可以將圖書下載到手機里。在紙質書籍出版前就可以搶先閱讀,甚至可以搶先閱讀作者手稿,并實時給作者反饋。同時還可以復制粘貼實例代碼、組織你的收藏內容、下載章節、將關鍵段落加入書簽、創建筆記、打印出來,你既可以節省時間又可以提升閱讀效率。
O’Reilly已經將本書(英文版)上傳至 Safari在線圖書館里了。如果想在線閱讀本書和其他相關內容,請免費登錄 http://my.safaribooksonline.com。
聯系我們
對于本書的評論或問題請聯系出版商:
美國:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:北京市西城區西直門南大街 2號成銘大廈 C座 807室( 100035)奧萊利技術咨詢(北京)有限公司
我們為本書制作了一個 Web頁面,頁面中包含了簡介、樣章,以及其他信息。可以從這里訪問這個頁面:
http://www.oreilly.com/catalog/9781449303518 http://www.oreilly.com.cn
如果要留言或者提交關于本書的技術問題的反饋,請發郵件至:
bookquestions@oreilly.com
本書的更多信息、資源、參考文獻和新聞,請登錄出版社官網: http://www.oreilly.com或者 http://www.oreilly.com.cn/。 Facebook:http://facebook.com/oreilly Twitter:http://twitter.com/oreillymedia YouTube:http://www.youtube.com/oreillymedia
內容簡介:

在琳瑯滿目的Web富客戶端應用實現方式中,JavaScript在其中巧妙地穿針引線,扮演著"黏合劑”的作用。JavaScript與各種瀏覽器插件技術(Silverlight、ActiveX、Flash、Applet)均擁有互操作能力,無論這種插件技術是主流的、還是生僻的,是傳統的、還是現代的。  JavaScript是唯一不需安裝任何插件,便被各大主流Web瀏覽器支持的動態腳本,可謂擁有天然的跨平臺性。未來之RIA,必是以JavaScript為核心!

目錄:

第1章 MVC和類 ........1
最初 ...............1
增加結構 ..............2
什么是MVC ............2
模型 ..............3
視圖 ..............4
控制器 ..............5
向模塊化進軍,創建類 ............6
給類添加函數.............7
給“類”庫添加方法 ...........8
基于原型的類繼承 ...........10
給“類”庫添加繼承 ........... 11
函數調用 ..............12
控制“類”庫的作用域 ..........15
添加私有函數.............17
“類”庫 ..............18
第2章 事件和監聽 ........21
監聽事件 ..............21
事件順序 ..............22
取消事件 ..............23
事件對象 ..............23
事件庫 ..............25
切換上下文 ............26
委托事件 ..............26
自定義事件 ............27
自定義事件和jQuery 插件 ...........28
DOM 無關事件 ............30
第3章 模型和數據 ........33
MVC 和命名空間 ...........33
構建對象關系映射(ORM) ...........34
原型繼承 ............35
添加ORM 屬性 ............36
持久化記錄.............37
增加ID 支持 ............39
尋址引用 ..............40
裝載數據 ..............41
直接嵌套數據 ...........42
通過Ajax 載入數據 ..........42
JSONP ............46
跨域請求的安全性 ...........46
向ORM 中添加記錄 ............47
本地存儲數據.............47
給ORM 添加本地存儲 ..........49
將新記錄提交給服務器 ..........51
第4章 控制器和狀態 .......53
模塊模式 ..............54
全局導入 ............54
全局導出 ............54
添加少量上下文 .............55
抽象出庫 ............56
文檔加載完成后載入控制器 ..........58
訪問視圖 ............59
委托事件 ............61
狀態機 ..............63
路由選擇 ..............65
使用URL 中的hash ...........65
檢測hash 的變化 ............66
抓取Ajax .............67
使用HTML5 History API .........68
第5章 視圖和模板 ........71
動態渲染視圖.............71
模板 ...............73
模板Helpers ...........75
模板存儲 ............75
綁定 ...............77
模型中的事件綁定 ...........78
第6章 依賴管理 .......81
CommonJS .............82
模塊的聲明.............83
模塊和瀏覽器 ...........83
模塊加載器 ............84
Yabble ............84
RequireJS .............85
包裝模塊 ..............87
模塊的按需加載 .............88
LABjs .............89
無交互行為內容的閃爍(FUBC) ..........89
第7章 使用文件 .......91
瀏覽器支持 ............91
獲取文件信息.............92
文件輸入 ..............92
拖曳 ...............93
拖曳 ..............94
釋放拖曳 ............96
撤銷默認的Drag/Drop ...........97
復制和粘貼 ............97
復制 ..............98
粘貼 ..............99
讀文件 .............. 100
二進制大文件和文件切割 .......... 101
自定義瀏覽器按鈕 ........... 102
上傳文件 .............. 102
Ajax 進度條 ............ 104
jQuery 拖曳上傳 ............ 106
創建拖曳目標區域 ........... 106
上傳文件 ............ 107
第8章 實時Web .......109
實時Web 的發展歷史 .......... 109
WebSocket ............ 110
Node.js 和Socket.IO .......... 114
實時架構 .............. 116
感知速度 .............. 117
第9章 測試和調試 ......119
單元測試 .............. 121
斷言 .............. 121
QUnit ............ 122
Jasmine ............. 126
驅動 ............. 128
無界面的測試............. 131
Zombie ............. 132
Ichabod ............. 134
分布式測試 ............ 135
提供支持 .............. 136
調試工具 .............. 136
Web Inspector ........... 136
Firebug ............. 138
控制臺 .............. 139
控制臺函數........... 140
使用JavaScript 調試器 .......... 141
分析網絡請求............. 143
Profile 和函數運行時間 ........... 144
第10章 部署 ........147
性能 ............. 147
緩存 ............. 148
源碼壓縮(Minification) ........... 150
Gzip 壓縮 ............. 151
使用CDN ............. 152
審查工具 .............. 153
外部資源 .............. 154
第11章 Spine類庫 .......155
設置 ............. 156
類 ............... 156
實例化 ............ 156
類擴展 ............ 157
上下文 ............ 158
事件 ............. 159
模型 ............. 160
獲取記錄 ............ 161
模型事件 ............ 162
校驗 .............. 163
持久化 ............ 163
控制器 .............. 165
代理 .............. 166
元素 .............. 167
委托事件 ............ 167
控制器事件........... 168
全局事件 ............ 168
渲染模式 ............ 169
元素模式 ............ 169
構建聯系人管理應用 ........... 171
聯系人模型........... 172
側邊欄控制器 ........... 173
聯系人控制器 ........... 175
應用程序控制器 ........... 178
第12章 Backbone類庫 .......181
模型 ............. 182
模型和屬性........... 182
集合 ............. 184
控制集合的內部順序 .......... 185
視圖 ............. 185
渲染視圖 ............ 186
委托事件 ............ 187
綁定和上下文 ........... 187
控制器 .............. 188
與服務器的同步 ........... 190
填充集合 ............ 192
服務器端 ............ 192
自定義行為........... 193
構建To-Do 列表應用 ........... 195
第13章 JavaScriptMVC類庫 ......203
設置 ............. 204
Class ............. 204
實例化 ............ 205
調用基類的方法 ........... 205
代理 .............. 205
靜態繼承 ............ 206
自省 .............. 206
一個模型的例子 ........... 207
模型 ............. 207
屬性和可觀察 ........... 208
擴展模型 ............ 210
Setter ............ 210
Defaults ............ 211
輔助方法 ............ 211
服務封裝 ............ 212
類型轉換 ............ 215
CRUD 事件 ............ 216
在視圖中使用客戶端模板 .......... 216
基本用法 ............ 217
jQuery 修改器 ............ 217
用Script 標簽加載 ........... 217
$.View 和子模板 .......... 218
延時對象 ............ 218
打包、預加載和性能 .......... 219
$.Controller :jQuery 插件工廠 .......... 220
概覽 .............. 222
控制器實例化 ........... 222
事件綁定 ............ 223
模板動作 ............ 224
大綜合:一個抽象的CRUD 列表 ........ 225
附錄A jQuery基礎 .......227
附錄B CSS擴展 .......239
附錄C CSS3參考 .......245
索引 .........267
序: