第一图书网

基于MVC的JavaScript Web富应用开发

麦卡劳 电子工业出版社
出版时间:

2012-5  

出版社:

电子工业出版社  

作者:

麦卡劳  

页数:

282  

字数:

462000  

译者:

李晶,张散集  

Tag标签:

无  

前言

  译者序  从第一眼看到封面上这只憨憨的猫头鹰开始,就深深地喜欢上了这本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 intime)解析引擎,(在浏览器端)JavaScript 已经无孔不入了。仅仅在5 年以前,开发者还在使用Ajax 写一些短小的代码或热衷于实现一些类似“黄色渐褪技术”的网页特效;而现在,复杂的JavaScript 应用已经可以写上成百上千行的代码了。  就在去年,互联网出现了一股追捧JavaScript 应用的浪潮,很多人开始着迷于给Web 应用加入很多桌面软件的交互元素,增强Web 应用的用户体验,这种趋势犹如星星之火迅速蔓延至整个互联网。在过去,在浏览器性能不佳的情况下,用户在进行Web 应用时每次交互都要刷新页面,而且页面加载很慢。而如今JavaScript 引擎已经变得异常强大,我们可以将很多交互行为植入客户端,这样交互的响应就会非常及时,增强体验。  当然获得提升的不仅仅是JavaScript 引擎的性能。尽管CSS3 和HTML5 规范现在仍在修订之中,也已经有很多现代浏览器广泛支持这些新特性了,比如Safari、Chrome 和Firefox,IE9 也在一定程度上支持这些新特性。利用这些特性可以花更少的时间做出更棒的视觉效果,而且不用花精力做图片的切割和拼合来模拟视觉效果。现在浏览器的升级也很快,对HTML5 和CSS3 的支持也一天比一天好。但你还是要定义一个浏览器测试基准(你的应用所支持的最低标准的客户端软件和版本),基于此才能更加合理地选择所需的技术。  将应用的重心从服务器迁移到客户端并不轻松,这和构建服务器应用的方法完全不一样。你需要想清楚架构、模板、与服务器端的通信、框架等,这些正是本书所涵盖的内容。我将手把手教你如何构建“优雅又不失高水准”的JavaScript 应用。

内容概要

  如今Web 应用程序的开发已经越来越向传统应用软件开发靠拢了,Web
和应用之间的界限也进一步模糊。传统编程语言中的设计模式、MVC、应用架构等理论也在慢慢地融入Web
前端开发。这本书所涵盖的知识点非常全面,从MVC 的基本理论到网络协议、从模块解耦到异步编程模型、从HTML5/CSS3
到NodeJS、从软件测试到部署调试,对于很多前端工程师来说,这些知识正是突破自己的瓶颈所亟需的。
  《基于MVC的JavaScript Web富应用开发》将专注于讲述如何构建“优雅又不失高水准”(state of the
art)的JavaScript
应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。书中同样提供了大量的示例代码,可以帮助你更深入地理解很多重要的概念。除此之外,作者在MVC
和架构方面的很多观点都很有启发性,即使你不是一名JavaScript 程序员,读完本书后也会受益匪浅。

作者简介

  Alex
MacCaw,是一名Ruby/JavaScript程序员,在开源社区中很有名望,是Spine框架的作者,开发过Taskforce,Socialmod等大型开源项目,同时活跃在纽约、旧金山和柏林的各大Ruby/Rails会议。

书籍目录

第1章 MVC和类
最初
增加结构
什么是MVC
模型
视图
控制器
向模块化进军,创建类
给类添加函数
给"类"库添加方法
基于原型的类继承
给"类"库添加继承
函数调用
控制"类"库的作用域
添加私有函数
"类"库
第2章 事件和监听
监听事件
事件顺序
取消事件
事件对象
事件库
切换上下文
委托事件
自定义事件
自定义事件和jQuery 插件
DOM 无关事件
第3章 模型和数据
MVC 和命名空间
构建对象关系映射(ORM)
原型继承
添加ORM 属性
持久化记录
增加ID 支持
寻址引用
装载数据
直接嵌套数据
通过Ajax 载入数据
JSONP
跨域请求的安全性
向ORM 中添加记录
本地存储数据
给ORM 添加本地存储
将新记录提交给服务器
第4章 控制器和状态
模块模式
全局导入
全局导出
添加少量上下文
抽象出库
文档加载完成后载入控制器
访问视图
委托事件
状态机
路由选择
使用URL 中的hash
检测hash 的变化
抓取Ajax
使用HTML5 History API
第5章 视图和模板
动态渲染视图
模板
模板Helpers
模板存储
绑定
模型中的事件绑定
第6章 依赖管理
CommonJS
模块的声明
模块和浏览器
模块加载器
Yabble
RequireJS
包装模块
模块的按需加载
LABjs
无交互行为内容的闪烁(FUBC)
第7章 使用文件
浏览器支持
获取文件信息
文件输入
拖曳
拖曳
释放拖曳
撤销默认的Drag/Drop
复制和粘贴
复制
粘贴
读文件
二进制大文件和文件切割
自定义浏览器按钮
上传文件
Ajax 进度条
jQuery 拖曳上传
创建拖曳目标区域
上传文件
第8章 实时Web
实时Web 的发展历史
WebSocket
Nodejs 和SocketIO
实时架构
感知速度
第9章 测试和调试
单元测试
断言
QUnit
Jasmine
驱动
无界面的测试
Zombie
Ichabod
分布式测试
提供支持
调试工具
Web Inspector
Firebug
控制台
控制台函数
使用JavaScript 调试器
分析网络请求
Profile 和函数运行时间
第10章 部署
性能
缓存
源码压缩(Minification)
Gzip 压缩
使用CDN
审查工具
外部资源
第11章 Spine类库
设置

实例化
类扩展
上下文
事件
模型
获取记录
模型事件
校验
持久化
控制器
代理
元素
委托事件
控制器事件
全局事件
渲染模式
元素模式
构建联系人管理应用
联系人模型
侧边栏控制器
联系人控制器
应用程序控制器
第12章 Backbone类库
模型
模型和属性
集合
控制集合的内部顺序
视图
渲染视图
委托事件
绑定和上下文
控制器
与服务器的同步
填充集合
服务器端
自定义行为
构建To-Do 列表应用
第13章 JavaScriptMVC类库
设置
Class
实例化
调用基类的方法
代理
静态继承
自省
一个模型的例子
模型
属性和可观察
扩展模型
Setter
Defaults
辅助方法
服务封装
类型转换
CRUD 事件
在视图中使用客户端模板
基本用法
jQuery 修改器
用Script 标签加载
$View 和子模板
延时对象
打包、预加载和性能
$Controller :jQuery 插件工厂
概览
控制器实例化
事件绑定
模板动作
大综合:一个抽象的CRUD 列表
附录A jQuery基础
附录B CSS扩展
附录C CSS3参考
索引

章节摘录

版权页: 插图: 第1章 MVC和类 最初 JavaScript程序开发已经和最初我们想象中的模样有了天壤之别,也很少有人能记起从JavaScript诞生之初的Netscape浏览器到如今异常强大的解析引擎——比如Google的V8——的进化历程。JavaScript到ECMAScript的标准化道路也充满坎坷。然而对于JavaScript的发明者来说,做梦也不会想到JavaScript会有今天这么强大。尽管JavaScript已然非常成功和流行,但仍然被大多数人所误解。只有少数人知道JavaScript是一种强大的、动态的面向对象编程语言。JavaScript中诸如原型继承、模块和命名空间等高级特性依然会让很多人感到吃惊。那么,为什么这门语言会如此被误解?一个原因是早期的JavaScript实现非常糟糕,有很多bug;另一个原因是因为其名字带有“Java”前缀,让人以为它和Java有关系。实际上,它和Java是完全不同的两种语言。然而,在我看来,真正的原因在于大多数开发者接触和使用JavaScript的方式。对于其他语言来说,比如Python和Ruby,开发者必须要坚持阅读技术文档、视频教程和学习指南。但是直到现在,使用JavaScript开发程序也不用这样,开发者的需求往往是给现有代码添加一个表单验证、弹出框或图片轮播控件,而且工期也很紧。因此他们直接去网上找一段能用的代码就可以了,而不必花时间去学习和理解这门语言。很多人就是这样开始接触JavaScript的,并堂而皇之地把JavaScript技能写入他们的简历。 现在,JavaScript引擎和浏览器已经变得非常强大,使用JavaScript来构建庞大的应用已经屡见不鲜,而且越来越流行。像Gmail和Google Maps之类的产品给我们带来了Web应用全新的体验,开发者们顿时趋之若鹜。公司开始雇用全职的JavaScript程序员,JavaScript也早已不再是只能完成表单验证的“不入流的脚本语言”了。现在凭借其自身独特的优势,JavaScript已经成为一门独立的、潜力无穷的编程语言。 这种趋势说明JavaScript应用会如雨后春笋一般遍地开花。不幸的是,可能是因为JavaScript糟糕的过去,很多JavaScript应用的架构是非常脆弱的。某些原因是,当使用JavaScript开发应用时,那些经典的设计模式和最佳实践被抛在了脑后。开发者往往忽略架构模型,比如MVC模型,而常将应用中的HTML和JavaScript混杂在一起,看着像一个大杂烩。

媒体关注与评论

  本书适合从事JavaScript 开发,寻求进阶的前端开发人员、Web 架构师阅读。  “强烈向读者推荐此书,它将会教你如何构建先进的富应用程序,书中给出的很多优秀的工具和最佳实践都是很多程序员和工程师在工作中亟需的。我已经记不起向多少人推荐过这本书了。”  ——Addy Osmani 美国在线JavaScript工程师


编辑推荐

《基于MVC的JavaScript Web富应用开发》不是为JavaScript初学者所写,如果你对JavaScript这门语言缺乏基本的了解和认识,我建议你先阅读一些更基础的书,比如Douglas Crockford著的《JavaScript: The Good Parts》。《基于MVC的JavaScript Web富应用开发》更适合有一些JavaScript开发经验的开发者,比如使用jQuery类库的开发者,或者当你希望构建更复杂、更高级的JavaScript应用时,也是适合你的。此外,《基于MVC的JavaScript Web富应用开发》的很多章节,特别是附录,对于有经验的 JavaScript开发者来说也是非常有帮助的。

名人推荐

“强烈向读者推荐此书,它将会教你如何构建先进的富应用程序,书中给出的很多优秀的工具和最佳实践都是很多程序员和工程师在工作中亟需的。我已经记不起向多少人推荐过这本书了。” ——Addy Osmani 美国在线JavaScript工程师

图书封面

图书标签Tags

广告

下载页面


基于MVC的JavaScript Web富应用开发 PDF格式下载



很好,Javascript越来越重要,而我现在已然决定转入前端工程师的行列,这本书对我的启发很多,以前对MVC以及Javascript的MVC了解不多,但构建大的RIA,使用MVC几乎是必然之选了


适合有一定javascript基础和MVC的开发人员


读完后对 javascript MVC 有了更多的理解


用OO和 MVC的视角编写JavaScript程序,具有很强的启发!


很好的MVC的javascript的书,推荐


书写的非常好,例子也很详尽,特别是结合作者自己的javascript类库让读者很容易理解


是书评吗,不是购物体验吗……好吧,那就书评吧,JavaScript语言精粹不太适合零基础的人看,说的很快很精华,不太有详细讲解,一些不懂的东西呀单独再找资料学,适合js水平的拔高。另一本没看呢,翻了翻感觉实用价值比较大,还想买js权威指南,可是好贵啊,而且那么厚,不爱看。


对想在javascript上进一步学习的同学来说,这是一本很好的书籍。很多内容值得学习


值得一学,javascript很重要,而且是会越来越重要,是未来


有道是:才高八斗。我觉得作者的确是行家,对开发和理解MVC帮助非常大


以前没想到javascript还能做这些事


第一本前端MVC教程,很强大


知识点新颖。深度够。单单“基于MVC”的说辞,就很吸引人的。好书。


适合做网页的人,学习做富应用,甚至游戏


前端开发js必备工具指南


大概翻了一下,感觉技术点很丰富,有很多地方值得学习。感觉很适合有一定js和jq开发经验的人员阅读,并能有很好的提高。


此书适合有经验的js 开发人员阅读 有利于提高开发人员的系统整体认知度 推荐阅读


前端架构的好书啊


前端必读,有志于学好一门优秀语言的代码师必读


非常好的书,作者就是spine的作者,值得一看


书很不错,送货速度略慢,总体来说还是物超所值的


本书还是比较丰富的,不适合js入门同学,适合对js面向对象了解的朋友学习。


内容有点深,适合有点基础的参考


项目上要用到,书的内容不错


书很不错,很有帮助,当当发货速度快,购买方便


这本书看起来有些难度 ,慢慢消化吧


从这本书中,学到很多新的思想。值得仔细阅读


挺好的一本书 看了预览章节 觉得是我想要的 所以果断拿下


书里面有些地方字体颜色都有深有浅的,里面几张还稍微有点破损,虽然影响不大,但毕竟有点坏心情,看在书的内容的份上5分吧。


真的需要一定的js基础才能读得有收获。


没有想象中的内容充实


还没看,之前项目中用到过backbone,有时间细看


短小精悍的书,随时随地可以拿在手里


书很好,发货也挺快的~


书很好,有点深度


书是很好,包装也很好。当当的快递也挺给力


希望能够有所收获


写的非常的好!写的非常的好!


配合英文版一起读,不错的选择


本书内容质量还是不错的!


看了几页 感觉思想上还是不错的 具体还不了解


讲的基础了点,看着还不错


很不错,需要一定的基础


这本书的包装很好,发货速度相等快


看目录内容超赞的~~~


真心不错,买了好久了,一直没有过来评价


帮同学买的,说是挺好的


暂时没看,


100减20买的,包装完好,感觉很不错


巩固加深很不错


主要想看ajax部分


非常值得购买。留下来当工具书了。


不错。 目前一看一部分 。


货真价实,发货快捷。


给单位购买的


年初的时候淘宝的团队就说翻译完了,一直刷UED的博客和电商网站,今天突然看见开始销售了,非常激动,果断入手一本。


值得一看的用javascript实现mvc的demo。相关知识都覆盖到了,但讲的都很浅,需要自己进一步查资料。


想跟踪JavaScript的最新发展,要买来看看的。


本来jq不是很支持MVC,生拉硬套


从内容来讲,都是高级主题。但读起来有点“散”的感觉。
就像火力超猛的冲锋枪,同时朝着N个靶子打。
对于有一定难度的书,很希望有个相对完整的案例配合讲解,可惜没有。


对于新手来说有点难


这是一本适合有js基础人看


这本书还行吧,有一定的帮助


在当当买很多次,第一次遇到有书破了的情况,但不影响阅读。。。。


这书不错,好好学习


书还没开始看,随便翻了几页感觉还不错


猫头鹰书很酷!


不错的一本书。值得学习,有利于提升自己的知识面。


内容感觉没有达到期望值


包装太水里,直接弄个塑料袋包一下就完事了,有两次书脊都断了,书皮褶皱更是常事儿,之前买个**的一次记得人家用泡泡纸包着,可以很好的保护书本,现有效仿。


也许是技术有点问题吧


大致翻了翻,觉得挺好,还没细看


有些关键点,介绍不错的,个人懒,没有看下去


浏览了一下。。还不错


讲解的也不错,技术很新。


可以说,书本不是教你怎么写javascript的富应用。很多的代码并没有注解,只能说这是作者的独舞。只能有这面类库开发经验者才能和作者共舞。


主要让我认识了Spinejs,并在项目中加以应用,但是对其他的类库介绍较少,还有就是spinejs的实现过程及理念


这本书很适合准备构建自己的js库的程序员来学习


过分强调框架,是一种学究性,不适合实战开发者


内容比较详细,翻译的很专业


总之还不错总之还不错总之还不错


替朋友买的,感觉还是不错的。:-)


还没细看,但是ORealliy的值得收藏。


这本书很一般,讲的是概念,没有什么应用,不建议买在书店翻翻可以。


不是很满意,看都不看懂,感觉是在推销一样


书是好书,就是送货真的太慢了,整整六天才收到啊,哎


翻译的不太好,读起来比较吃力.这本书,即不适合初学者,很多基础知识不给解释.也不适合有经验的程序员, 很多东西别的书籍已经介绍过了.明明是javascript 开发,一会用的javascript 举例,一会用jquery 举例, 到底想介绍什么?书名说基于MVC的开发,可书中的内容很凌乱,


虽然现在看起来还有点吃力,不过内容还是很有帮助


结构太差了, mvc的东西基本没怎么解释清楚


需熟练掌握javascript才可以看懂,书的起点较高,总体还不错


内容有些粗,初学者不适合阅读。


内容基于jquery,或者说用jquery举例子来分析模块化设计,不厚


需要有实践经验后,再看就能看懂了


基于MVC的JavaScript Web富应用开发


纯理论的东西读起来会有点吃力,好吧,我读不懂,里面的思想可以借鉴下,没事读读怎么也没坏处


真心没看懂。我理解mvc是种思想,就像java web中的一样,应该可以用很浅显的道理说清楚的,但是我理解java web的mvc,却没理解js的mvc.


没看到多少,但前面的感觉还不多。如果觉得有必要系统学习一下js的可以看看


言简意不赅 书中内容显然不够


内容写得很好,非常到位。


很全面地介绍了web 2.0的前端开发,需要对javascript有基础的了解。书中的例子很多,而且浅显易懂,适合对MVC、Backbone等的入门。如果对代码架构、软件工程有一定的了解,会有很多共鸣和学习的地方。总的来说,书比较易读,内容简单。


相关图书