使用Javascript能够编写快速 交互的Web应用,这在过去几年已经得到普遍认可,js应用提供了很多超过服务器端技术(PHP JSP ASP)应用的功能,丰富的交互性和轻量快速的反应,这些已经不只是原生应用独有的专利了。
JS的重量应用是产品性应用,在Web上加载一个应用远好于原生应用的下载和安装体验。
富内容应用如新闻和视频也开始使用JS,以便获得更好的交互性,不像产品性应用,用户在一天开始之时登录一次后,就一直处于登录状态,内容丰富的网站每天需要登录很多次,经常都是通过搜索引擎和社会媒体共享等途径反复登录。
在这个场景下,js应用看上去是"正常"的web网页,加载延迟却让人感觉不是十分像Web,的确,这也是2012年Twitter从客户端javascript迁移回服务器端渲染内容的原因。
能够在服务器端启动Javascript应用,然后在浏览器再“补充水分rehydrate”,这已经被认为是一个美好的事情,但是,大部分努力都是聚焦在服务器端将View视图层渲染成HTML(JSP等输出为HTML),这是很重要的一步,但是不足以解决问题。
解决整个问题不只是包括视图层,还包括整个应用从启动开始的生命周期,路由 抓取模型 和渲染(整个MVC过程),现在通过FastBoot将这些复杂的过程整合进入了Ember.js。
FastBoot将允许你传递一个页面的HTML和CSS,然后允许Javascript在完成这些加载后实现掌控,你的Ember应用行为将和服务器端应用没有差别,无论用户来自搜索引擎 移动用户或CURL工具,甚至用户失效了Javascript。
此外,你还可以拥有原来的好的响应性和交互性。