互联网早起,前后端是一体化的,前端代码也是后端代码的一部分,前端只是对表单提示等进行初步检测的工具。当时的前端代码主要由后端工程师书写。其开发过程为
- 后端收到游览器请求
- 后端生成静态页面
- 游览器接受静态页面
其典型技术比如早起的php,jsp等嵌入到html文档中的语言,就是因此而生的
互联网进过早起发展后,通过借鉴客户端模式,逐渐形成了MVC架构模式并延留至今,后端MVC架构代表:
- M:Model模型,表示数据
- C:Controller控制器,处理数据实现业务逻辑
- V:View视图:展示数据提供用户界面
前端此时只属于后端MVC的V部分的一部分。此时但是了早起的前端工程师,早起前端工程师主要负责的是书写html与css并且因此产生了各种著名的布局方式(表格布局,双飞翼,圣杯,绝对定位等等都是此时诞生的),此时对前端工程师往往要求是“熟悉div布局+css”,此时的前端主要工作是写页面给后端,并且多为UI设计师兼职。
当时的js任然多由后端工程师开发,并且后端会将html和css套入后端mvc架构的“模板引擎”中,让模板引擎进行渲染页面。(虽然现代前端已经不需要模板引擎了,但该技术在现代前端可以作为很好的代码管控工具,任然被保留并且蓬勃发展)
Ajax最早被加入游览器后,该技术瞬间改变了互联网,2004年,Gmail最先使用Ajax,使得前端终于实现了从静态到动态的转换,不在只是后端的模板,可以独立得到数据,可以存在丰富的交互功能。web进入2.0时代,同时,Facebook、淘宝、京东、百度、微博等等国内外互联网也是从这个时候进入快速发展期,瞬间成长为一个又一个巨头。也在此时,但是了真正意义的前端工程师,前后端正式分家。后端主要负责为前端提供接口(早期是xml,现在以json为主)
- 2008年,Google发布V8引擎,使得js的运行速度得到了巨大的提升
- 2009年,Node项目诞生,使得JavaScript从前端迈向后端,并且成为了唯一可以同时完成前端与后端的编程语言
- 2010年,backbone项目诞生,成为了最早的完整前端MVC框架,前端可以:保存数据、处理数据、生成视图、定义路由。
- 2012年,Google发布angular.js技术,成为大一统的前端MVVM架构的代表,前端可以实现数据的双向绑定,依靠指令完成的创新影响了后来的很多技术
- 2013年,react,vue.js相继发布,
- 2015年,等待6年的重量级JavaScript版本——ECMAScript6正式发布,JavaScript拥有了数十种全新的特性,使得开发变得更加强大和容易。同年,react native发布,JavaScript可以完全完成原生移动端开发,再次成为唯一解决前端、后端、移动端的全平台唯一全栈语言。同年electron发布,JavaScript又一次征服桌面平台。
下一个技术?
也许终会实现Atwood's Low:Any application that can be written in JavaScript, will eventually be written in JavaScript(任何能用JavaScript完成的应用,必将最终由JavaScript完成)
建议阅读:《你不知道的JavaScript》、《JavaScript编程精粹》