出版時間:2012-5 出版社:電子工業(yè)出版社 作者:麥卡勞 頁數(shù):282 字數(shù):462000 譯者:李晶,張散集
Tag標簽:無
前言
譯者序 從第一眼看到封面上這只憨憨的貓頭鷹開始,就深深地喜歡上了這本JavaScript Web Applications,讀了簡介和目錄之后就已經(jīng)不能自拔了。這幾年鮮有深入講架構(gòu)級web app 的好書,這讓這本JavaScript Web Applications 更加難得,作為O‘Reilly 第一本專注于純高端JavaScript 架構(gòu)思想的書,凡是有一點“架構(gòu)情節(jié)”的工程師都不應當錯過?!? 如今Web 應用程序的開發(fā)已經(jīng)越來越向傳統(tǒng)應用軟件開發(fā)靠攏了,Web 和應用之間的界限也進一步模糊。傳統(tǒng)編程語言中的設計模式、MVC、應用架構(gòu)等理論也在慢慢地融入Web 前端開發(fā)。隨著服務器端JavaScript 和移動終端的興起,作為一名前端工程師,也深知自己正處在一個深刻變革的年代,面對眼花繚亂的新概念和新技術(shù)更應當把握本質(zhì)、認清方向,勇于創(chuàng)新和實踐,而這本JavaScript Web Applications 的出現(xiàn)更是一陣及時雨,為我們工作中遇到的很多難題提供了解決方案和最佳實踐。同時,這本書所涵蓋的知識點非常全面,從MVC 的基本理論到網(wǎng)絡協(xié)議、從模塊解耦到異步編程模型、從HTML5/CSS3 到NodeJS、從軟件測試到部署調(diào)試,對于很多前端工程師來說,這些知識正是突破自己的瓶頸所亟需的?!? 這本書將專注于講述如何構(gòu)建“優(yōu)雅又不失高水準”(state of the art)的JavaScript 應用,包括軟件架構(gòu)、模板引擎、框架和庫、同服務器的消息通信等內(nèi)容。書中同樣提供了大量的示例代碼,可以幫助你更深入地理解很多重要的概念。除此之外,作者在MVC 和架構(gòu)方面的很多觀點都很有啟發(fā)性,即使你不是一名JavaScript 程序員,讀完本書后也會受益匪淺。 本書作者 Alex MacCaw 是一名Ruby/JavaScript 程序員,是Spine 框架的開發(fā)者。在翻譯本書的過程中,我深深體會到他作為一名優(yōu)秀工程師所具備的扎實的計算機專業(yè)功底和讓人敬佩的開源精神。盡管這本書包含大量的專業(yè)術(shù)語,但作者文筆輕松流暢,即使直接讀原文也絲毫不會感到枯燥,所以我們在翻譯過程中也是非常小心,生怕丟掉這種輕松流暢的閱讀感覺,盡力為大家原汁原味地呈現(xiàn)本書。當然由于專業(yè)知識所限,翻譯過程難免疏漏,還希望各位高手批評指正。 最后,我要感謝博文視點的張春雨在譯書過程中給予我們的幫助和信任。感謝我的好友王保平(玉伯)對很多關鍵的技術(shù)性問題提出的寶貴意見,還要感謝可愛的同事楊振楠(棟寒)、楊翰文(地極)、李燕青(霸先)、車思慧(靈玉)、陳良(舒克)的細心校對,他們給譯文提了很多中肯的建議。當然,最最需要感謝的是家中的“領導”,已經(jīng)記不得多少次趕譯稿加班太晚,得到的不是你的抱怨,而是你的鼓勵,這讓我至今備感溫暖?!? 李晶(拔赤),張散集(一舟) 2011 年12 月 北京 前 言 1995 年隨著Netscape 瀏覽器的發(fā)布,JavaScript 也作為它的組成部分進入到公眾的視野,之后JavaScript 的發(fā)展道路盡管充滿坎坷但成長飛速,如今得益于高性能的JIT(just intime)解析引擎,(在瀏覽器端)JavaScript 已經(jīng)無孔不入了。僅僅在5 年以前,開發(fā)者還在使用Ajax 寫一些短小的代碼或熱衷于實現(xiàn)一些類似“黃色漸褪技術(shù)”的網(wǎng)頁特效;而現(xiàn)在,復雜的JavaScript 應用已經(jīng)可以寫上成百上千行的代碼了?!? 就在去年,互聯(lián)網(wǎng)出現(xiàn)了一股追捧JavaScript 應用的浪潮,很多人開始著迷于給Web 應用加入很多桌面軟件的交互元素,增強Web 應用的用戶體驗,這種趨勢猶如星星之火迅速蔓延至整個互聯(lián)網(wǎng)。在過去,在瀏覽器性能不佳的情況下,用戶在進行Web 應用時每次交互都要刷新頁面,而且頁面加載很慢。而如今JavaScript 引擎已經(jīng)變得異常強大,我們可以將很多交互行為植入客戶端,這樣交互的響應就會非常及時,增強體驗?!? 當然獲得提升的不僅僅是JavaScript 引擎的性能。盡管CSS3 和HTML5 規(guī)范現(xiàn)在仍在修訂之中,也已經(jīng)有很多現(xiàn)代瀏覽器廣泛支持這些新特性了,比如Safari、Chrome 和Firefox,IE9 也在一定程度上支持這些新特性。利用這些特性可以花更少的時間做出更棒的視覺效果,而且不用花精力做圖片的切割和拼合來模擬視覺效果?,F(xiàn)在瀏覽器的升級也很快,對HTML5 和CSS3 的支持也一天比一天好。但你還是要定義一個瀏覽器測試基準(你的應用所支持的最低標準的客戶端軟件和版本),基于此才能更加合理地選擇所需的技術(shù)?!? 將應用的重心從服務器遷移到客戶端并不輕松,這和構(gòu)建服務器應用的方法完全不一樣。你需要想清楚架構(gòu)、模板、與服務器端的通信、框架等,這些正是本書所涵蓋的內(nèi)容。我將手把手教你如何構(gòu)建“優(yōu)雅又不失高水準”的JavaScript 應用。
內(nèi)容概要
如今Web 應用程序的開發(fā)已經(jīng)越來越向傳統(tǒng)應用軟件開發(fā)靠攏了,Web
和應用之間的界限也進一步模糊。傳統(tǒng)編程語言中的設計模式、MVC、應用架構(gòu)等理論也在慢慢地融入Web
前端開發(fā)。這本書所涵蓋的知識點非常全面,從MVC 的基本理論到網(wǎng)絡協(xié)議、從模塊解耦到異步編程模型、從HTML5/CSS3
到NodeJS、從軟件測試到部署調(diào)試,對于很多前端工程師來說,這些知識正是突破自己的瓶頸所亟需的。
《基于MVC的JavaScript Web富應用開發(fā)》將專注于講述如何構(gòu)建“優(yōu)雅又不失高水準”(state of the
art)的JavaScript
應用,包括軟件架構(gòu)、模板引擎、框架和庫、同服務器的消息通信等內(nèi)容。書中同樣提供了大量的示例代碼,可以幫助你更深入地理解很多重要的概念。除此之外,作者在MVC
和架構(gòu)方面的很多觀點都很有啟發(fā)性,即使你不是一名JavaScript 程序員,讀完本書后也會受益匪淺。
作者簡介
Alex
MacCaw,是一名Ruby/JavaScript程序員,在開源社區(qū)中很有名望,是Spine框架的作者,開發(fā)過Taskforce,Socialmod等大型開源項目,同時活躍在紐約、舊金山和柏林的各大Ruby/Rails會議。
書籍目錄
第1章 MVC和類
最初
增加結(jié)構(gòu)
什么是MVC
模型
視圖
控制器
向模塊化進軍,創(chuàng)建類
給類添加函數(shù)
給"類"庫添加方法
基于原型的類繼承
給"類"庫添加繼承
函數(shù)調(diào)用
控制"類"庫的作用域
添加私有函數(shù)
"類"庫
第2章 事件和監(jiān)聽
監(jiān)聽事件
事件順序
取消事件
事件對象
事件庫
切換上下文
委托事件
自定義事件
自定義事件和jQuery 插件
DOM 無關事件
第3章 模型和數(shù)據(jù)
MVC 和命名空間
構(gòu)建對象關系映射(ORM)
原型繼承
添加ORM 屬性
持久化記錄
增加ID 支持
尋址引用
裝載數(shù)據(jù)
直接嵌套數(shù)據(jù)
通過Ajax 載入數(shù)據(jù)
JSONP
跨域請求的安全性
向ORM 中添加記錄
本地存儲數(shù)據(jù)
給ORM 添加本地存儲
將新記錄提交給服務器
第4章 控制器和狀態(tài)
模塊模式
全局導入
全局導出
添加少量上下文
抽象出庫
文檔加載完成后載入控制器
訪問視圖
委托事件
狀態(tài)機
路由選擇
使用URL 中的hash
檢測hash 的變化
抓取Ajax
使用HTML5 History API
第5章 視圖和模板
動態(tài)渲染視圖
模板
模板Helpers
模板存儲
綁定
模型中的事件綁定
第6章 依賴管理
CommonJS
模塊的聲明
模塊和瀏覽器
模塊加載器
Yabble
RequireJS
包裝模塊
模塊的按需加載
LABjs
無交互行為內(nèi)容的閃爍(FUBC)
第7章 使用文件
瀏覽器支持
獲取文件信息
文件輸入
拖曳
拖曳
釋放拖曳
撤銷默認的Drag/Drop
復制和粘貼
復制
粘貼
讀文件
二進制大文件和文件切割
自定義瀏覽器按鈕
上傳文件
Ajax 進度條
jQuery 拖曳上傳
創(chuàng)建拖曳目標區(qū)域
上傳文件
第8章 實時Web
實時Web 的發(fā)展歷史
WebSocket
Nodejs 和SocketIO
實時架構(gòu)
感知速度
第9章 測試和調(diào)試
單元測試
斷言
QUnit
Jasmine
驅(qū)動
無界面的測試
Zombie
Ichabod
分布式測試
提供支持
調(diào)試工具
Web Inspector
Firebug
控制臺
控制臺函數(shù)
使用JavaScript 調(diào)試器
分析網(wǎng)絡請求
Profile 和函數(shù)運行時間
第10章 部署
性能
緩存
源碼壓縮(Minification)
Gzip 壓縮
使用CDN
審查工具
外部資源
第11章 Spine類庫
設置
類
實例化
類擴展
上下文
事件
模型
獲取記錄
模型事件
校驗
持久化
控制器
代理
元素
委托事件
控制器事件
全局事件
渲染模式
元素模式
構(gòu)建聯(lián)系人管理應用
聯(lián)系人模型
側(cè)邊欄控制器
聯(lián)系人控制器
應用程序控制器
第12章 Backbone類庫
模型
模型和屬性
集合
控制集合的內(nèi)部順序
視圖
渲染視圖
委托事件
綁定和上下文
控制器
與服務器的同步
填充集合
服務器端
自定義行為
構(gòu)建To-Do 列表應用
第13章 JavaScriptMVC類庫
設置
Class
實例化
調(diào)用基類的方法
代理
靜態(tài)繼承
自省
一個模型的例子
模型
屬性和可觀察
擴展模型
Setter
Defaults
輔助方法
服務封裝
類型轉(zhuǎn)換
CRUD 事件
在視圖中使用客戶端模板
基本用法
jQuery 修改器
用Script 標簽加載
$View 和子模板
延時對象
打包、預加載和性能
$Controller :jQuery 插件工廠
概覽
控制器實例化
事件綁定
模板動作
大綜合:一個抽象的CRUD 列表
附錄A jQuery基礎
附錄B CSS擴展
附錄C CSS3參考
索引
章節(jié)摘錄
版權(quán)頁: 插圖: 第1章 MVC和類 最初 JavaScript程序開發(fā)已經(jīng)和最初我們想象中的模樣有了天壤之別,也很少有人能記起從JavaScript誕生之初的Netscape瀏覽器到如今異常強大的解析引擎——比如Google的V8——的進化歷程。JavaScript到ECMAScript的標準化道路也充滿坎坷。然而對于JavaScript的發(fā)明者來說,做夢也不會想到JavaScript會有今天這么強大。盡管JavaScript已然非常成功和流行,但仍然被大多數(shù)人所誤解。只有少數(shù)人知道JavaScript是一種強大的、動態(tài)的面向?qū)ο缶幊陶Z言。JavaScript中諸如原型繼承、模塊和命名空間等高級特性依然會讓很多人感到吃驚。那么,為什么這門語言會如此被誤解?一個原因是早期的JavaScript實現(xiàn)非常糟糕,有很多bug;另一個原因是因為其名字帶有“Java”前綴,讓人以為它和Java有關系。實際上,它和Java是完全不同的兩種語言。然而,在我看來,真正的原因在于大多數(shù)開發(fā)者接觸和使用JavaScript的方式。對于其他語言來說,比如Python和Ruby,開發(fā)者必須要堅持閱讀技術(shù)文檔、視頻教程和學習指南。但是直到現(xiàn)在,使用JavaScript開發(fā)程序也不用這樣,開發(fā)者的需求往往是給現(xiàn)有代碼添加一個表單驗證、彈出框或圖片輪播控件,而且工期也很緊。因此他們直接去網(wǎng)上找一段能用的代碼就可以了,而不必花時間去學習和理解這門語言。很多人就是這樣開始接觸JavaScript的,并堂而皇之地把JavaScript技能寫入他們的簡歷。 現(xiàn)在,JavaScript引擎和瀏覽器已經(jīng)變得非常強大,使用JavaScript來構(gòu)建龐大的應用已經(jīng)屢見不鮮,而且越來越流行。像Gmail和Google Maps之類的產(chǎn)品給我們帶來了Web應用全新的體驗,開發(fā)者們頓時趨之若鶩。公司開始雇用全職的JavaScript程序員,JavaScript也早已不再是只能完成表單驗證的“不入流的腳本語言”了?,F(xiàn)在憑借其自身獨特的優(yōu)勢,JavaScript已經(jīng)成為一門獨立的、潛力無窮的編程語言。 這種趨勢說明JavaScript應用會如雨后春筍一般遍地開花。不幸的是,可能是因為JavaScript糟糕的過去,很多JavaScript應用的架構(gòu)是非常脆弱的。某些原因是,當使用JavaScript開發(fā)應用時,那些經(jīng)典的設計模式和最佳實踐被拋在了腦后。開發(fā)者往往忽略架構(gòu)模型,比如MVC模型,而常將應用中的HTML和JavaScript混雜在一起,看著像一個大雜燴。
媒體關注與評論
本書適合從事JavaScript 開發(fā),尋求進階的前端開發(fā)人員、Web 架構(gòu)師閱讀?!? “強烈向讀者推薦此書,它將會教你如何構(gòu)建先進的富應用程序,書中給出的很多優(yōu)秀的工具和最佳實踐都是很多程序員和工程師在工作中亟需的。我已經(jīng)記不起向多少人推薦過這本書了。” ——Addy Osmani 美國在線JavaScript工程師
編輯推薦
《基于MVC的JavaScript Web富應用開發(fā)》不是為JavaScript初學者所寫,如果你對JavaScript這門語言缺乏基本的了解和認識,我建議你先閱讀一些更基礎的書,比如Douglas Crockford著的《JavaScript: The Good Parts》?!痘贛VC的JavaScript Web富應用開發(fā)》更適合有一些JavaScript開發(fā)經(jīng)驗的開發(fā)者,比如使用jQuery類庫的開發(fā)者,或者當你希望構(gòu)建更復雜、更高級的JavaScript應用時,也是適合你的。此外,《基于MVC的JavaScript Web富應用開發(fā)》的很多章節(jié),特別是附錄,對于有經(jīng)驗的 JavaScript開發(fā)者來說也是非常有幫助的。
名人推薦
“強烈向讀者推薦此書,它將會教你如何構(gòu)建先進的富應用程序,書中給出的很多優(yōu)秀的工具和最佳實踐都是很多程序員和工程師在工作中亟需的。我已經(jīng)記不起向多少人推薦過這本書了。” ——Addy Osmani 美國在線JavaScript工程師
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
基于MVC的JavaScript Web富應用開發(fā) PDF格式下載