新書推薦:
《
自由,不是放纵
》
售價:HK$
54.9
《
甲骨文丛书·消逝的光明:欧洲国际史,1919—1933年(套装全2册)
》
售價:HK$
277.8
《
剑桥日本戏剧史(剑桥世界戏剧史译丛)
》
售價:HK$
201.6
《
中国高等艺术院校精品教材大系:材料的时尚表达??服装创意设计
》
售價:HK$
76.2
《
美丽与哀愁:第一次世界大战个人史
》
售價:HK$
143.4
《
国家豁免法的域外借鉴与实践建议
》
售價:HK$
188.2
《
大单元教学设计20讲
》
售價:HK$
76.2
《
儿童自我关怀练习册:做自己最好的朋友
》
售價:HK$
69.4
編輯推薦:
《基于MVC的JavaScriptWeb富应用开发》不是为JavaScript初学者所写,如果你对JavaScript这门语言缺乏基本的了解和认识,我建议你先阅读一些更基础的书,比如Douglas Crockford著的《JavaScript: The Good Parts》。
《基于MVC的JavaScriptWeb富应用开发》更适合有一些JavaScript开发经验的开发者,比如使用jQuery类库的开发者,或者当你希望构建更复杂、更高级的JavaScript应用时,也是适合你的。此外,《基于MVC的JavaScriptWeb富应用开发》的很多章节,特别是附录,对于有经验的 JavaScript开发者来说也是非常有帮助的。
內容簡介:
在琳琅满目的Web富客户端应用实现方式中,JavaScript在其中巧妙地穿针引线,扮演着"黏合剂的作用。JavaScript与各种浏览器插件技术(Silverlight、ActiveX、Flash、Applet)均拥有互操作能力,无论这种插件技术是主流的、还是生僻的,是传统的、还是现代的。JavaScript是唯一不需安装任何插件,便被各大主流Web浏览器支持的动态脚本,可谓拥有天然的跨平台性。未来之RIA,必是以JavaScript为核心!
關於作者:
李晶,花名拔赤,阿里旅行前端工程师,具有多年前端开发经验,在团队协作、框架开发等方面有深入研究。 曾经参与淘宝彩票、淘宝首页、阿里旅行等项目开发。热爱分享,喜欢折腾。《JavaScript 权威指南第六版》、《编写可维护的JavaScript》译者。张散集,原淘宝前端工程师,主要从事技术管理,现在是美团技术主管,热爱前端新技术的推广与应用。《JavaScript 权威指南第六版》译者。 Alex MacCaw是一名RubyJavaScript程序员,在开源社区中很有名望,是Spine框架的作者,开发过Taskforce、Socialmod等大型开源项目,同时活跃在纽约、旧金山和柏林的各大RubyRails会议。
目錄 :
目录
第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
模块的声明.........
內容試閱 :
OReilly Media, Inc.介绍
OReilly Media通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。自 1978年开始, OReilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来,而我们关注真正重要的技术趋势通过放大那些细微的信号来刺激社会对新科技的应用。作为技术社区中活跃的参与者, OReilly的发展充满了对创新的倡导、创造和发扬光大。
OReilly为软件开发人员带来革命性的动物书;创建第一个商业网站( GNN);组织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 Make杂志,从而成为 DIY革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。 OReilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择, OReilly现在还将先锋专家的知识传递给普通的计算机用户。无论是通过书籍出版,在线服务或者面授课程,每一项 OReilly的产品都反映了公司不可动摇的理念信息是激发创新的力量。
业界评论
OReilly Radar博客有口皆碑。
Wired
OReilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业
务。
Business 2.0
OReilly Conference是聚集关键思想领袖的绝对典范。
CRN
一本 OReilly的书就代表一个有用、有前途、需要学习的主题。
Irish Times
Tim是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照 Yogi Berra的建议去做了:如果你在路上遇到岔路口,走小路(岔路)。回顾过去 Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。
Linux Journal
译者序
从第一眼看到封面上这只憨憨的猫头鹰开始,就深深地喜欢上了这本 JavaScript Web Applications,读了简介和目录之后就已经不能自拔了。这几年鲜有深入讲架构级 web app的好书,这让这本 JavaScript Web Applications更加难得,作为 OReilly第一本专注于纯高端 JavaScript架构思想的书,凡是有一点架构情节的工程师都不应当错过。
如今 Web应用程序的开发已经越来越向传统应用软件开发靠拢了, Web和应用之间的界限也进一步模糊。传统编程语言中的设计模式、 MVC、应用架构等理论也在慢慢地融入 Web前端开发。随着服务器端 JavaScript和移动终端的兴起,作为一名前端工程师,也深知自己正处在一个深刻变革的年代,面对眼花缭乱的新概念和新技术更应当把握本质、认清方向,勇于创新和实践,而这本 JavaScript Web Applications的出现更是一阵及时雨,为我们工作中遇到的很多难题提供了解决方案和最佳实践。同时,这本书所涵盖的知识点非常全面,从 MVC的基本理论到网络协议、从模块解耦到异步编程模型、从 HTML5CSS3到 NodeJS、从软件测试到部署调试,对于很多前端工程师来说,这些知识正是突破自己的瓶颈所亟需的。
这本书将专注于讲述如何构建优雅又不失高水准(state of the art)的 JavaScript应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。书中同样提供了大量的示例代码,可以帮助你更深入地理解很多重要的概念。除此之外,作者在 MVC和架构方面的很多观点都很有启发性,即使你不是一名 JavaScript程序员,读完本书后也会受益匪浅。
本书作者 Alex MacCaw是一名 RubyJavaScript程序员,是 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.comcatalog9780596517748)(OReilly)。本书更适合有一些 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的一些替代方案,比如 Sproc
译者序
从第一眼看到封面上这只憨憨的猫头鹰开始,我就深深地喜欢上了这本JavaScript Web Applications,读了简介和目录之后就已经不能自拔了。这几年鲜有深入讲架构级Webapp 的好书,这让这本JavaScript Web Applications 更加难得,作为OReilly 第一本专注于纯高端JavaScript 架构思想的书,凡是有一点架构情节的工程师都不应当错过。
如今Web 应用程序的开发已经越来越向传统应用软件开发靠拢了,Web 和应用之间的界限也进一步模糊。传统编程语言中的设计模式、MVC、应用架构等理论也在慢慢地融入Web 前端开发。随着服务器端JavaScript 和移动终端的兴起,作为一名前端工程师,也深知自己正处在一个深刻变革的年代,面对眼花缭乱的新概念和新技术更应当把握本质、认清方向,勇于创新和实践,而这本JavaScript Web Applications 的出现更是一阵及时雨,为我们工作中遇到的很多难题提供了解决方案和最佳实践。同时,这本书所涵盖的知识点非常全面,从MVC 的基本理论到网络协议、从模块解耦到异步编程模型、从HTML5CSS3 到Node.js、从软件测试到部署调试,对于很多前端工程师来说,这些知识正是突破自己的瓶颈所亟需的。
这本书将专注于讲述如何构建优雅又不失高水准(state of the art)的JavaScript 应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。书中同样提供了大量的示例代码,可以帮助你更深入地理解很多重要的概念。除此之外,作者在MVC 和架构方面的很多观点都很有启发性,即使你不是一名JavaScript 程序员,读完本书后也会受益匪浅。
本书作者 Alex MacCaw 是一名RubyJavaScript 程序员,是Spine 框架的开发者。在翻译本书的过程中,我深深体会到他作为一名优秀工程师所具备的扎实的计算机专业功底和让人敬佩的开源精神。尽管这本书包含大量的专业术语,但作者文笔轻松流畅,即使直接读原文也丝毫不会感到枯燥,所以我们在翻译过程中也是非常小心,生怕丢掉这种轻松流畅的阅读感觉,尽力为大家原汁原味地呈现本书。当然由于专业知识所限,翻译过程中难免有所疏漏,还希望各位高手批评指正。
最后,我要感谢博文视点的张春雨在译书过程中给予我们的帮助和信任。感谢我的好友王保平(玉伯)对很多关键的技术性问题提出的宝贵意见,还要感谢可爱的同事杨振楠(栋寒)、杨翰文(地极)、李燕青(霸先)、车思慧(灵玉)、陈良(舒克)的细心校对,他们给译文提了很多中肯的建议。当然,最最需要感谢的是家中的领导,已经记不得多少次赶译稿加班太晚,得到的不是你的抱怨,而是你的鼓励,这让我至今备感温暖。
李晶(拔赤),张散集(一舟)