如今W e b 应用程序的开发已经越来越向传统应用软件开发靠拢了,W e b 和应用之间的界限也进一步模糊。传统编程语言中的设计模式、M V C 、应用架构等理论也在慢慢地融入W e b 前端开发。
J a v a S c r i p t 引擎和浏览器已经变得非常强大,使用J a v a S c r i p t 来构建庞大的应用已经屡见不鲜,而且越来越流行。像G m a i l 和G o o g l e M a p s 之类的产品给我们带来了We b 应用全新的体验.
M V C 是一种设计模式,它将应用划分为3 个部分:数据(模型)、展现层(视图)和用户交互层(控制器)。换句话说,一个事件的发生是这样的过程:
1 . 用户和应用产生交互。
2 . 控制器的事件处理器被触发。
3 . 控制器从模型中请求数据,并将其交给视图。
4 . 视图将数据呈现给用户。
事件是J a v a S c r i p t 应用程序的核心,是所有内容的驱动,它决定了在应用程序产生用户交互的起始时刻。然而在J a v a S c r i p t 诞生之初“事件”的实现并不标准,甚至非常丑陋。
在之后的浏览器大战中网景和微软分道扬镳,它们各自实现的事件模型互不兼容
有很多诸如j Q u e r y 和P r o t o t y p e 的类库很好地处理了兼容性问题,对外提供了统一的A P I 来实现事件。
发布/ 订阅(P u b / S u b )是一种消息模式,它有两个参与者:发布者和订阅者。发布者向某个信道(c h a n n e l )发布一条消息,订阅者绑定这个信道,当有消息发布至信道时就会接收到一个通知。最重要的一点是,发布者和订阅者是完全解耦的,彼此并不知晓对方的存在。两者仅仅共享一个信道名称。
发布者和订阅者的解耦可以让你的应用易于扩展,而不必引入额外的交叉依赖和耦合,从而提高了应用的可维护性,添加额外功能也非常容易。