1990年,Tim 以超文本语言 HTML 为基础在 NeXT 电脑上发明了最原始的 Web 浏览器。
1991 年,Tim 作为布道者在 Internet 上广泛推广 Web 的理念,与此同时,美国国家超算应用中心对此表现出了浓厚的兴趣,并开发了名为 Mosaic 的浏览器,于 1993 年 4 月进行了发布。自此,浏览器这个名词开始传入大众的视野。
这一年内,显示召开了第一届万维网大会,而后迎来了HTML 2.0 规范发布。两个月后的九月,因特网工程任务组设立了 HTML 工作组。而此之前的Mosaic 浏览器的开发人员创建了网景公司,并发布了 Mosaic Netscape 1.0 beta 浏览器,后改名为 Navigator。
除此之外,在这一年,还成立了一个意义非凡的组织,那就是万维网联盟,简称 W3C。
由 Tim 牵头的万维网联盟成立,这标志着万维网的正式诞生。但这时候的网页以HTML为主,是纯静态网页,信息流只能通过服务器到客户端单向流通,由此世界进入了 Web 1.0 时代。
为了加强网页的效果,网景工程师 Brendan Eich 花了10天时间设计了 JavaScript 语言。起初这种脚本语言叫做 Mocha,后改名 LiveScript,后来为了借助 Java 语言创造良好的营销效果最终改名为 JavaScript。网景公司把这种脚本语言嵌入到了 Navigator 2.0 之中,使其能在浏览器中运行。
除了网景,另一个科技互联网大头也在为此努力,这就是微软。1996 年,微软发布了 VBScript 和 JScript。JScript 是对 JavaScript 进行逆向工程的实现,并内置于 Internet Explorer 3 中。但是 JavaScript 与 JScript 两种语言的实现存在差别,这导致了程序员开发的网页不能同时兼容 Navigator 和 Internet Explorer 浏览器。 Internet Explorer 开始抢夺 Netscape 的市场份额,这导致了第一次浏览器战争。
网景为了确保 JavaScript 的市场领导地位,他将JavaScript 提交到欧洲计算机制造商协会(European Computer Manufacturers Association)以便将其进行国际标准化。很快 以 JavaScript 语言为基础制定的ECMAScript 1.0 标准规范于1997年问世。而最初的IE版本漏洞百出,根本无法与Netscape相抗衡,微软继续加大投入,相继推出了IE2.0、3.0和4.0版本。直到微软使出了自己的“必杀技”。97年,微软将IE与Windows 95操作系统捆绑在一起,凭借着Windows这一大杀器,迅速使IE占据了主动权。Netscape回天乏术,很快败下阵来,最终被美国在线收购。后来Netscape开源,成立Mozilla基金会。
第一次浏览器战争以 IE 浏览器完胜 Netscape 而结束,IE 开始统领浏览器市场,份额的最高峰达到 2002 年的 96%。随着第一轮大战的结束,浏览器的创新也随之减少。
web1的渐渐发展,但没有很大的思想飞跃,直至2004年。
IE 在第一次浏览器大战中击败 Netscape 赢得胜利,垄断了浏览器市场。作为独裁者,IE 并不遵循 W3C 的标准,IE 成了事实标准。而后2004年,由开源Navigator 衍生出 Firefox 浏览器FireFox的发布,让IE的主导地位收到了挑战,FireFox被认为是 Netscape 的精神续作。但尽管当时 Firefox 的性能远胜不思进取的 IE,但 Windows 的捆绑优势太强横,使 Firefox 一直没机会从后赶上。
除了浏览器家长里短的争斗,web技术的发展也在这年有了突破。Google 分别在 2004 年和 2005 年先后发布了两款重量级的 Web 产品:Gmail 和 Google Map。这两款 Web 产品都大量使用了 AJAX 技术,不需要刷新页面就可以使得前端与服务器进行网络通信,这虽然在当今看来是理所应当的,但是在十几年前AJAX却是一项革命性的技术,颠覆了用户体验。
AJAX 使得浏览器客户端可以更方便地向服务器发送数据信息,这促进了 Web 2.0 的发展。
AJAX 从 2005 年开始得到开发人员的广泛关注到2006年HttpRequest 被 W3C 正式纳入标准。
随着以 Firefox 和 Opera 为首的 W3C 阵营与 IE 对抗程度的加剧,浏览器碎片化问题越来越严重,不同的浏览器执行不同的标准,对于开发人员来说这是一个恶梦。
为了解决浏览器兼容性问题,Dojo、jQuery、YUI、ExtJS、MooTools 等前端 Framework 相继诞生。前端开发人员用这些 Framework 频繁发送 AJAX 请求到后台,在得到数据后,再用这些 Framework 更新 DOM 树。其中2006年John Resig发布了JQuery工具库的第一个版本,这个工具库一经出世就风靡全球,一直持续到现在,是前端史上最成功的JS库。
在2008年1月22日,HTML5正式草案发布。在HTML5新规范的指引下,各个浏览器厂商都为了支持HTML5而不断改进浏览器,第二次浏览器战争走向了良性竞争
在这两大阵营的浏览器之争中,终于在 2008 年 Google 推出 Chrome 浏览器,Chrome 使用了 Safari 开源的 WebKit 作为布局引擎,并且研发了高效的 JavaScript 引擎 V8。其卓越的性能、简洁的介面以及捆绑 Google 搜寻的优势,快速攻城掠地,除了侵蚀原有属于 Firefox 的市场之外,也同时痛殴老旧的微软 IE。到了 2012 年,Google Chrome 在 流量统计机构 Statcounter 的数量里终于超越 IE,成为全球第一大浏览器。
2009年1月29日,Kevin Dangoor 发布了一篇文章 《What Server Side JavaScript needs》,并在 Google Groups 中创建了一个 ServerJS 小组,旨在构建更好的 JavaScript 生态系统,包括服务器端、浏览器端,而后更名为 CommonJS 小组。
CommonJS 社区产生了许多模块化的规范 Modules ,大牛云集,各显神通,不同思想的碰撞和斗争,产生了许多浏览器端的模块化加载库。
Chrome 发布,其 JavaScript 引擎 V8 的高效执行引起了 Ryan Dahl 的注意。2009 年末,Ryan 利用 Chrome 的 V8 引擎打造了基于事件循环的异步 I/O 框架 —— Node.js 诞生。
Node.js 的出现吸引了很多前端开发人员开始用 JavaScript 开发服务器代码,其异步编程风格也深受开发人员的喜爱。Node.js 的伟大不仅在于拓展了 JavaScript 在服务器端的无限可能,更重要的是它构建了一个庞大的生态系统。此后,诞生了grunt、gulp等构建工具,前端逐渐走向工程化。
基于 CommonJS 社区最初的主流规范实现模块化,但是之后赢得了 Server-side JavaScript 战争的 Node.js 更加看重实际开发者的声音而不是 CommonJS 社区许多腐朽化的规范,虽然大体上的使用方法未变,但之后 Node.js modules 发展其实于 CommonJS 已分道扬镳。
除了nodejs的诞生,Jeremy Ashkenas提交了第一个CoffeeScript版本,开启了其他语言转换为JS的风潮。我们竟然还可以用比JS更简单的代码来书写JS(不过JS难道还不够简单吗?)
此外,ECMAScript5正式发布,这个版本也是我们使用时间最长,各个浏览器兼容最完全,现在大部分程序使用的版本了
如今HTML5和ES5使得前端能够实现的交互功能越多,相应的代码复杂度也快速提高,以前用于后端的MV*框架也开始出现在前端部分。就在2009年,Miško Hevery创造了angularjs框架(后为Google所收购)。它不仅基于MVC框架开发,而且实现了SPA,前端工程化的需求越来越强烈了。
2009年11月,Dahl 向我们展示了可以用JS编写服务器代码的Nodejs。
2010 年 1 月,NPM 作为 Node.js 的包管理系统首次发布。
随后,从2010年10月出现的Backbone开始,Anjular、RequireJS等相继出现。
2011年twitter开源了其前端GUI框架bootstrap,为多设备多分辨率适配做出了杰出贡献,解放了无数程序员。
2012年3月,webpack诞生,相继霸占了 grunt、gulp的地位。
2012年10月,微软发布 TypeScript 公开版
2013年02月Mozilla基金会发布手机操作系统Firefox OS,该操作系统的整个用户界面都使用JavaScript,JS已经无处不在了。
Facebook认为MVC无法满足他们的扩展需求,由于他们非常巨大的代码库和庞大的组织,使得MVC很快变得复杂。他认为MVC不适合大规模的应用。当系统中有很多模型和相应的视图时,其复杂度就会迅速扩大,非常难以理解和调试,特别是模型和视图可能存在双向数据流动。在2013年5月向社区开源。react引入了新的JSX语法,使得UI层可以用组件开发。自此组件化思想逐渐在前端流行。
react等这些框架的运用,使得网站从Web Site进化成了Web App,开启了网站应用的SPA的时代
2015年3月, Facebook公司发布了React Native项目,将React框架移植到了手机端,可以用来开发手机App。
2015年6月,ES6发布,经TC39委员会计划,每年发布一个新版本ES,并将ES6改名为ES2015
2017年1月,vue诞生。