当前位置:嗨网首页>书籍在线阅读

28-小结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.8 小结

在本章,我们结束了Model的工作。我们系统地设计、详细说明、开发并测试了chat对象。和第5章一样,为加快开发效率,使用了Fake模块的模拟数据。然后更新了Chat功能模块,使用Model提供的chat和people对象的API。我们还创建了Avatar功能模块,它也使用了相同的 API。然后,讨论了使用 jQuery 的数据绑定。最后,添加了 Data模块,它使用Socket.IO和Node.js服务器进行通信。在第8章中,我们将设置服务器来和Data模块一起工作。在下一章,我们将学习Node.js。

注 释

[1]. 网络用语,常见于青少年游戏玩家,中文意思相当于“笑死我了!!!你被完爆了!”。有吹嘘自己很厉害的意思。——译者注

[2]. 现在是感谢宇宙苍生的好时机,因为没有jQuery 的话,生活不知道会有多么艰难。

[3]. 还有其他的策略,像是使用持久化的cookie 或者iframe,但坦白地讲,这些策略限制过多且令人费解,不值得考虑。

[4].作者把这张图表贴在了办公桌旁边的墙上。

[5]. 想了解更多关于第三方模块的信息以及如何创建它们,请看由Ben Vinegar和Anton Kovalyov编写的《Third-Party JavaScript》(Manning, 2012)。

[6]. 要准确地估计第三方模块有多流行是很难的,但也难找到有哪个商业网站一个都不使用的。比如,在编写本书时,我们数了下,在TechCrunch.com上至少使用了16个主要的第三方模块,其中至少有5个是单独的分析服务,脚本标签达到惊人的53个之多。

[7].分形(fractal),通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。更多信息请参考:http://zh.wikipedia. org/wiki/分形。——译者注

[8]. 桩(stub)是一个故意没完成的或者是占位用的资源。比如,在第5 章,我们将创建一个桩数据模块,它会伪造与服务器通信的数据。

[9]. 模型(Model)在本书讲解的单页应用中有对应的模块文件(spa.model.js),和Shell、Chat模块以及之后会介绍的Data、Fake模块是一样的。而Model模块与其他模块有一点不同的是,它又刚好对应MVC架构中的M。为了叙述的流畅性和一致性,约定从现在开始,和其他模块一样不翻译成中文,而直接使用Model一词。顺便也约定,如果很明确地说了是MVC中的Model,则根据习惯翻译成“模型”。——译者注

[10]. edge 模式,告诉IE使用最高可用的模式来显示内容。——译者注

[11]. 功能模块之间的通信应始终由Shell或者Model来协调。

[12].历史可靠的(history-safe)的意思是,所有的浏览器历史控件(像前进、后退、书签和浏览器历史)都按预期工作。

[13]. boilerplatestuff,样板代码,指在多处使用了一样或者很少改动的代码,更多信息请参考http://en.wikipedia. org/wiki/Boilerplate_code。——译者注

[14].虚线框里面的模块组,使用了共享的工具方法。比如,Chat、Avatar和Shell模块都使用了“浏览器端工具方法”和“基础工具方法”,而Data和Model模块只使用了“基础工具方法”。

[15].当显示用户输入的数据时,它们是很重要的阻止跨站脚本攻击(cross-site-scripting attacks)的方法。

[16].“提供和Model维护的人员列表进行交互的方法的对象”。——译者注

[17]. people和person翻译成中文都是“人”。按照作者的设定,people 是管理一批person 的对象,本小节为了叙述的准确性,直接使用people和person而不进行翻译。——译者注

[18]. 这种事件机制的其他名字有推送通信(push communication),或者pub-sub(publish-subscribe(发布-订阅)的简称)。

[19].所有发布的事件名都有名字空间前缀(spa-)。这有助于避免和第三方 JavaScript 以及库的潜在冲突。

[20]. 在1.9.0之前的版本,原生的jQuery 就支持这个功能。前不久,他们在我们即将出版本书的时候,移除了这一方法,呃,当然,这只会使我们的生活变得更有意思。

[21]. 在公开发布站点之前,我们很可能会使用一个好看的“正在处理中”的图形动画,而不是使用文字。有很多网站免费提供可自定义的高质量图形动画。

[22]. “提供和即时通信进行交互的方法的对象”。——译者注

[23]. 听者(chatee),这里指的是用户与之聊天的那个人。——译者注

[24]. 作者在前文中提到过,本书开发的聊天应用示例是一个假想的会议系统。——译者注

[25]. DSL,即特定领域语言(domain-specific language)。与之相对的叫通用语言(general-purpose language)。——译者注

[26]. 浏览器会提示找不到Socket.IO库,但这没什么大碍。