出版时间: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格式下载