关于前端:WEB开发行业发展史

7次阅读

共计 3059 个字符,预计需要花费 8 分钟才能阅读完成。

WEB 开发行业大事记

90 年代初,CERN 提出了 WEB 的概念,即 A 计算机能够拜访 B 计算机的数据,和 B 计算机进行交互。

93 年,CGI 技术呈现,在它呈现之前,网页都是动态的,CGI 最次要的作用,是反对服务端动静生成网页,浏览器不再是单纯的访问者,能够被动向服务端提交数据了。

94 年底,W3C 组织成立,次要作用是制订 WEB 标准。同年,网景浏览器公布。

95 年,JS 语言呈现,微软公布 IE 浏览器 1.0 版本,浏览器大战开始。

96 年,ECMAScript1.0 标准由 W3C 组织推出。同年,FLASH 技术呈现,网页开始转向可交互的,承载富媒体的方向倒退。

97 年,CSS 标准 1.0 版本由 W3C 组织推出。

98 年,W3C 推出 CSS2.0 标准。ECMAScript2.0 标准推出,同年,网景被 AOL(美国在线)收买,浏览器大战以微软的 IE 胜出为标记暂告一段落。

99 年,ECMAScript3.0 标准推出。因为 IE 过后的垄断,导致 IE 有足够的底气回绝遵循 W3C 标准,WEB 行业的翻新过程也因而短暂停滞了一段时间。同年,微软提出了 ActiveX 异步加载的技术,这一技术前面演变成了 AJAX。

2001 年,微软公布 IE6,此时 IE 浏览器占据了 80% 的市场份额。

2002 年,Mozilla 社区公布了 XMLHttpRequest 技术(也就是 AJAX),SPA(单页面利用)的开发方式呈现。

2004 年,谷歌公布 Gmail,推动行业转向应用 AJAX 制作 SPA,同年,火狐浏览器(网景浏览器的精力续作)公布,浏览器大战又开始了。

2005 年,谷歌公布 Goole Map,持续大量应用 AJAX 技术,推动行业转型。WEB 开发开始转向前后端拆散的模式,前端行业逐步形成。

2006 年,JS 类库 jQuery 呈现,次要作用是加强 JS 的事件处理和 DOM 操作能力。

2007 年,苹果公布初代 iPhone,首次实现了在挪动端浏览网页的比拟好的体验,由此开启了挪动互联网的时代。

2008 年,W3C 组织推出 HTML5 规范草案,同年,谷歌推出 Chrome 浏览器,退出浏览器大战。

2009 年,ECMAScript5 规范推出,同年,Mozilla 社区提出了 JS 在服务端运行的构想,并推出了 JS 的服务端模块化标准,此标准最后名称是 ServerJS,前面改成了 CommonJS,同年,NODEJS 呈现,它借鉴了局部 CommonJS 的标准,但并不是齐全遵循 CommonJS,NODEJS 最大的奉献是把 JS 语言的利用范畴拓展到了服务端,JS 不再是只能在浏览器内跑的脚本语言。所以后续谈到 JS,须要辨别到底是浏览器端的 JS 还是服务端的 JS。

2010 年,这一年事件比拟多,具体如下:

  • James Burke 提出了 AMD 标准,这个标准次要用于 JS 在浏览器端如何实现模块化开发,实际上同期还有其余的一些模块化标准,也都是用来解决浏览器端 JS 开发问题。
  • 实现 MVVM 理念的前端框架开始呈现,谷歌推出了 AngularJS 框架,其余的还有微软的 Knockout 和 Backbone,由此前端行业开始转向开发 SPA 的阶段。
  • JS 在服务端的倒退方面,NODEJS 引入了 NPM 性能,适配 NODEJS 的服务端框架 Express 呈现。

2011 年,前端构建工具 broswerify 呈现,前端开发流程开始往自动化和预处理方向倒退。

2012 年,前端构建工具 webpack 呈现。

2013 年,前端框架 REACT 呈现并开源,同年,Chrome 浏览器市场份额首次超过 IE。

2014 年,W3C 组织推出 HTML5 规范正式版,同年,国人相熟的前端框架 VUE 呈现。

2015 年,ECMAScript6 规范推出,借鉴 CommonJS 理念制订了 ES Module 标准。同年,微软发表放弃 IE 品牌,转向 Edge 浏览器。

2016 年至今,没有革命性地变动,前端行业整体转向挪动互联网,SPA 的开发方式成为支流,前端开发仍然采纳预处理 + 打包公布的形式进行,各个前端框架都推出了本人的 CLI 构建工具。JS 作为服务端方面 NODEJS 相干生态也在不断完善。

总结《Web 研发模式演变》

看了一下玉伯在 2014 年写的《Web 研发模式演变》一文,我总结了一下:

晚期时代,纯后端开发,应用 JAVA SERVLET 类技术进行开发,因为很久没用 JAVA SERVLET 了所以这里简略回顾一下,具体如下:

JAVA SERVLET 的核心理念是一个 SERVLET 类对应一个申请 URL,之后在 SERVELT 外部要做所有的事件,能够配合 JSP 实现模板引擎渲染。

晚期时代的长处是简略,毛病是不能适应大规模开发,一旦业务需要比较复杂,拓展性和可维护性就不好了。

之后进入了 MVC 时代,是后端 MVC,最大提高是在对 SERVLET 中的各种操作进行了细化和形象,具体如下:

看上去 MVC 时代和之前没有太大区别,一类申请用一个 MVC 构造解决,MVC 内局部了 3 个局部,但实际上 MVC 外部是能够相互调用的,比方申请类型 B 可能会用到申请类型 A 对应的 MVC 内的 DAO 解决。

MVC 时代仍然是重后端的开发方式,所以前后端在代码不拆散,但在分工上须要做拆散,会导致很多问题,比方前端人员在开发时往往须要本地编写离线的 HTML 的 DEMO,之后交给后端人员,被改成理论的 JSP,如果后端人员程度无限,就须要前端人员在 HTML 转 JSP 的过程中也参加,沟通老本较大。另外控制器也是由后端人员管制的(申明 URL,以及 URL 和模板引擎的对应关系),但实际上页面中的各种 URL 又是由前端人员编写的(URL 的申明),同一个事件让 2 集体去做,职责不清也会减少开发成本和沟通老本。

之后因为 2004~2005 年 AJAX 技术被谷歌大力推广,使得 WEB 开发进入了本质上的前后端拆散时代,具体如下:

当申请过去的时候,服务端间接返回动态 HTML 页面,之后在浏览器端应用 AJAX 向后端 MVC 服务器发送申请获取数据,MVC 服务器也就只返回数据,之后动态页面的 JS 用数据渲染出动静页面。如果是非 SPA,那服务器返回的 HTML 能够是多个不同的,如果是 SPA,则服务器返回的 HTML 文件只有一份,其余部分都用 JS 渲染实现,个别会用前端框架解决页面性能组件化复用问题,路由问题,AJAX 问题,模板引擎渲染等等问题。

这个模式还有一些变种,比方把 JS 渲染 HTML 的局部交给另一个服务器(个别是 NODEJS)解决,也就是中途岛模式,两头服务器负责返回动态 HTML,发送 AJAX 到后端服务器(接管动态 HTML 发送的 AJAX),渲染数据,返回 HTML 字符串给动态 HTML 页面,动态 HTML 页面的 JS 逻辑能够比较简单,次要是把两头服务器响应的 HTML 片段替换 DOM。

前后端拆散是为了应答简单业务产生的,开发难度就之前的形式更为简单,前后端交互的接口标准是一个重点,两方除了初始约定好之外,后续开发中及时放弃沟通也很重要,另外应用 JS 渲染 HTML 还会遇到浏览器性能问题,SEO 问题等等。

因为 NODEJS 也是用 JS 编写的,而 JS 是一种能够间接在浏览器和服务端都运行的语言,因而到目前还有一种所谓全栈式开发,即用 NODEJS 解决所有问题,相当于是回归到了晚期时代的开发方式,一种语言包揽所有性能,前端局部应用 NODEJS 引入前端框架打包开发,后端局部应用 NODEJS 参考 JAVA 体系的 MVC 开发方式做成 API 服务器,前端局部的一些业务校验逻辑,对应的 JS 也能够在后端局部应用。当然用 NODEJS 做全栈还有很多细节须要思考,比方性能问题,平安问题,数据库的对接问题,对不同操作系统上部署的兼容性问题等等。

正文完
 0