第一部分 Ember.js基础
JavaScript MVC框架Ember.js用于组织大型Web应用代码结构。与其他流行的JavaScript应用框架相比,其具有更完整的MVC模式特征,并包含创建新一代Web应用所需特性。它自信满满,严格依赖约定优于配置的设计范式来构造应用程序。
由于包含大量特性及应用约定,Ember.js的学习曲线比较陡峭。本书第一部分包含4章内容,帮你尽快找到Ember.js开发的感觉,并确保你从一开始就能有所成。
第1章 发力雄心勃勃的Web应用
本章涵盖的内容
- 单页面Web应用概述(Single-page Web Application,SPA)
- Ember.js介绍
- Ember.js为Web开发者带来了什么
- 第一个Ember.js应用程序
本章介绍Ember.js应用框架,以及Ember.js生态系统的大量特性和技术。大多数主题将在后续章节具体展开。你还将快速了解Ember.js应用的轮廓及其优势。
同时,本章也会介绍如何构建Ember.js应用,其间将涉及Ember.js框架的不同方面。如果一开始你不太理解某些代码,请别担心!所有的这些开发代码都会在后面一步步具体展开。
如果你已习惯开发服务器端技术驱动的Web应用,掌握Ember.js可不是轻松的事情。本章代码示例和记事本应用将涉及构建Ember.js应用的各种概念。
Ember.js的结构以一系列基础库为基础。书中各章开始处都会提供一张图,展示各个基础库并高亮显示各章涉及的内容。本章就会接触到许多Ember.js基础库,如图1-1所示。
1.1 Ember.js适用场景
像《纽约时报》网站或苹果公司网站这样的内容服务网站以传统的HTTP请求-响应生命周期为基础,在服务器端渲染大部分的HTML、CSS和JavaScript代码。如图1-2左半部分所示,对于每个请求,服务器端都会生成网页标记全新而完整的复本。
另一种技术是富互联网应用(RIA),诸如Google地图、Trello以及某种程度上的GitHub。这些网站的目标就是重新定义应用类型,在客户端渲染大部分内容,以与原生安装应用竞争。如图 1-2 右半部分所示,应用在第一次请求发生时,服务器端做出响应,将完整的应用(HTML、CSS以及JavaScript)一次性传送给客户端。对于随后请求将只返回显示下一页面所需的数据。
两种技术的优缺点展示在图示的两端。左边描述的页面很容易被服务器端缓存,但其依赖请求-响应生命周期模式,而且为了响应用户动作必须整页刷新。
图示右半部分拥有典型的富用户界面,提供了更好的用户体验,并与大家所熟知的原生应用相似,但实现起来也更复杂,需要浏览器软件提供更多的计算能力、新特性以及稳定性。
单页面应用(SPA)越来越流行,因为RIA——尤其是SPA——更像是原生安装应用,其具有更加响应式的用户界面、少量或局部的页面刷新。在这个领域,Ember.js的目标是成为Web应用开发者的最佳框架解决方案,并将Web应用效果发挥到极致。例如,Ember.js非常适合请求长时用户会话、需要富用户界面以及基于标准Web技术等各类场景。
如果打算创建图示右半部分风格的应用,那么,Ember.js正是为此打造的。Ember.js还有助于思索如何构建应用。它提供了创建丰富Web应用程序的强大工具,让你的创意发挥到极致,同时提供一系列丰富特性以构建真正雄心勃勃的Web应用程序。
在开发Ember.js应用程序之前,先来讨论一下为什么我们一开始就选择象Ember.js这样的框架,以及Ember.js提出要解决的问题。