前端发展简史

在很久以前,HTML,CSS和JavaScript - 就已经是是任何前端开发人员所涉及的主要内容。

HTML
第一次公开提到HTML是在1991年,Tim Berners-Lee描述了最初为标记语言提供的18个标签。 1994年他成立了一个HTML工作组 - 互联网工程任务组(IEFT)。他们认为网络属于大众(这个想法今天仍然很先进),所以他们的大门向任何希望加入的人开放。到1995年,我们获得了许多新的标签和属性,例如能够设置字体和背景颜色。这引起了一些争议,因为他们认为HTML只应该用于描述文档的结构,而不是用于超出范围的样式。那时,浏览器供应商正在攻击HTML工作组,并且对新功能的承认非常缓慢。为了解决这个问题,供应商聚集在一起致力于标准化HTML,一个月后,HTML工作组由于其缓慢性而被迫解散。

CSS
不久前,我们所有的样式通常都局限于单个CSS文件。
与我们今天所知的特殊区相比,我们构建风格时没有给予太多考虑。 Sass(Syntactically Awesome Stylesheets)于2006年问世,但直到几年之后,像OOCSS(面向对象的CSS)这样的方法才是真正的可扩展,可维护和可重用。现在我们可以使用命名方法,如BEM(块,元素,修饰符)或SUIT CSS,但结果是浏览器中的旧CSS。

JAVASCRIPT
在前端开发的三个基石中,JavaScript是经历了最彻底的转变的。在开发仅10天之后,在1995年开了光。直到今天,你要么爱它,要么恨它。服务器端JavaScript也在1995年被实现,但服务器端JS的真正支持者是Node,它于2009年发布。
从Node开始,貌似一切都在JavaScript上运行。构建工具正在使用它,应用程序使用它......它几乎嵌入在开发的各个方面。随着发布周期的更新,JavaScript本身每年都在变得越来越强大。 每年都会有新的发布。值得庆幸的是,这些下一个版本不会像ES2015那样深远,这让我们有机会赶上它的发展浪潮。

第一次浏览器战争
1996 年 11 月,为了确保 JavaScript 的市场领导地位,网景将 JavaScript 提交到欧洲计算机制造商协会(European Computer Manufacturers Association)以便将其进行国际标准化。

1996.12 W3C 推出了 CSS 1.0 规范

1997.1 HTML3.2 作为 W3C 推荐标准发布

1997.6 ECMA 以 JavaScript 语言为基础制定了 ECMAScript 1.0 标准规范

1997 年 6 月,ECMA 以 JavaScript 语言为基础制定了 ECMAScript 标准规范 ECMA-262。JavaScript 是 ECMAScript 规范最著名的实现之一,除此之外,ActionScript 和 JScript 也都是 ECMAScript 规范的实现语言。自此,浏览器厂商都开始逐步实现 ECMAScript 规范。

1997.12 HTML 4.0 规范发布

1998 W3C 推出了 CSS 2.0 规范

1998.6 ECMAScript 2 规范发布

1998 年 6 月,ECMAScript 2 规范发布,并通过 ISO 生成了正式的国际标准 ISO/IEC 16262 。

1999.12 ECMAScript 3 规范发布
1999 年 12 月,ECMAScript 3 规范发布,在此后的十年间,ECMAScript 规范基本没有发生变动。ECMAScript 3 成为当今主流浏览器最广泛使用和实现的语言规范基础。

第一次浏览器战争以 IE 浏览器完胜 Netscape 而结束,IE 开始统领浏览器市场,份额的最高峰达到 2002 年的 96%。随着第一轮大战的结束,浏览器的创新也随之减少。

XHTML
1999 W3C 发布 HTML 4.01 标准,同年微软推出用于异步数据传输的 ActiveX,随即各大浏览器厂商模仿实现了 XMLHttpRequest(AJAX 雏形)。
2000: W3C 采用了一个大胆的计划,把 XML 引入 HTML,XHTML1.0 作为 W3C 推荐标准发布
2001.5 W3C 推出了 CSS 3.0 规范草案
2002-2006 XHTML 2.0 最终放弃
2009 W3C 宣布 XHTML2.0 不再继续,宣告死亡

动态页面的崛起
JavaScript 诞生之后,可以用来更改前端 DOM 的样式,实现一些类似于时钟之类的小功能。那时候的JavaScript 仅限于此,大部分的前端界面还很简单,显示的都是纯静态的文本和图片。这种静态页面不能读取后台数据库中的数据,为了使得 Web 更加充满活力,以 PHP、JSP、ASP.NET 为代表的动态页面技术相继诞生。

PHP(PHP:Hypertext Preprocessor)最初是由 Rasmus Lerdorf 在 1995 年开始开发的,现在PHP 的标准由 PHP Group 维护。PHP 是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入 HTML 中使用。PHP 的语法借鉴吸收 C 语言、Java 和 Perl 等流行计算机语言的特点,易于一般程序员学习。PHP 的主要目标是允许网络开发人员快速编写动态页面。

JSP(JavaServer Pages)是由 Sun 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,从而动态生成 HTML、XML 或其他格式文档的 Web 网页的技术标准。JSP 技术是以 Java 语言为基础的。1999 年,JSP 1.2 规范随着 J2EE 1.2 发布。

ASP(Active Server Pages)1.0 在 1996 年随着 IIS 3.0 而发布。2002 年,ASP.NET 发布,用于替代 ASP。

随着这些动态服务器页面技术的出现,页面不再是静止的,页面可以获取服务器数据信息并不断更新。以 Google 为代表的搜索引擎以及各种论坛相继出现,使得 Web 充满了活力。

随着动态页面技术的不断发展,后台代码变得庞大臃肿,后端逻辑也越来越复杂,逐渐难以维护。此时,后端的各种 MVC 框架逐渐发展起来,以 JSP 为例,Struct、Spring 等框架层出不穷。

从 Web 诞生至 2005 年,一直处于后端重、前端轻的状态。

AJAX 的流行
在 Web 最初发展的阶段,前端页面要想获取后台信息需要刷新整个页面,这是很糟糕的用户体验。

Google 分别在 2004 年和 2005 年先后发布了两款重量级的 Web 产品:Gmail 和 Google Map。这两款 Web 产品都大量使用了 AJAX 技术,不需要刷新页面就可以使得前端与服务器进行网络通信,这虽然在当今看来是理所应当的,但是在十几年前AJAX却是一项革命性的技术,颠覆了用户体验。

随着 AJAX 的流行,越来越多的网站使用 AJAX 动态获取数据,这使得动态网页内容变成可能,像 Facebook 这样的社交网络开始变得繁荣起来,前端一时间呈现出了欣欣向荣的局面。

AJAX 使得浏览器客户端可以更方便地向服务器发送数据信息,这促进了 Web 2.0 的发展。

第二次浏览器战争
前端兼容性框架的出现
IE 在第一次浏览器大战中击败 Netscape 赢得胜利,垄断了浏览器市场。作为独裁者,IE 并不遵循 W3C 的标准,IE 成了事实标准。

Netscape 于 1998 年被 AOL 收购前创建了 Mozilla 社区,Firefox 于 2004 年 11 月首次发布,并且 9 个月内下载量超过 6000 万,获取了巨大的成功,IE 的主导地位首次受到了挑战, Firefox 被认为是 Netscape 的精神续作。

之后 Firefox 浏览器一路奋起直追,逐渐蚕食 IE 市场份额,这引发了第二次浏览器战争。在 2008 年底时,Firefox 的市场份额达到了 25% 以上,IE 则跌至 65% 以下。

第二次浏览器战争中,随着以 Firefox 和 Opera 为首的 W3C 阵营与 IE 对抗程度的加剧,浏览器碎片化问题越来越严重,不同的浏览器执行不同的标准,对于开发人员来说这是一个恶梦。

为了解决浏览器兼容性问题,Dojo、jQuery、YUI、ExtJS、MooTools 等前端 Framework 相继诞生。前端开发人员用这些 Framework 频繁发送 AJAX 请求到后台,在得到数据后,再用这些 Framework 更新 DOM 树。

其中,jQuery 独领风骚,几乎成了所有网站的标配。Dojo、YUI、ExtJS 等提供了很多组件,这使得开发复杂的企业级 Web 应用成为可能。

HTML 5
1999年,W3C发布了 HTML 4.01 版本,在之后的几年,没有再发布更新的 Web 标准。随着Web的迅猛发展,旧的Web标准已不能满足 Web 应用的快速增长。

2004 年 6 月,Mozilla 基金会和 Opera 软件公司在万维网联盟(W3C)所主办的研讨会上提出了一份联合建议书,其中包括 Web Forms 2.0 的初步规范草案。建议举行一次投票,以表决 W3C 是否应该扩展 HTML 和 DOM,从而满足 Web 应用中的新需求。研讨会最后以 8 票赞成,14 票反对否决此建议,这引起一些人的不满,不久后,部分浏览器厂商宣布成立网页超文本技术工作小组(WHATWG),以继续推动该规范的开发工作,该组织再度提出 Web Applications 1.0 规范草案,后来这两种规范合并形成 HTML5。2007 年,获得 W3C 接纳,并成立了新的 HTML 工作团队。2008 年 1 月 22 日,第一份正式草案发布。

2008.12 Chrome 发布,JavaScript 引擎 V8
HTML5 草案发布不久,Google 在 2008 年 12 月发布了 Chrome 浏览器,加入了第二次浏览器大战当中。Chrome 使用了 Safari 开源的 WebKit 作为布局引擎,并且研发了高效的 JavaScript 引擎 V8。

尽管 HTML5 在网络开发人员中非常出名了,但是它成为主流媒体的一个话题是在 2010 年的 4 月,当时苹果公司的 CEO 乔布斯发表一篇题为“对 Flash 的思考”的文章,指出随着 HTML5 的发展,观看视频或其它内容时,Adobe Flash 将不再是必须的。这引发了开发人员间的争论,包括 HTML5 虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及 HTML5 和 Flash 间的功能差异。

在第二次浏览器大战中,各个浏览器厂商都以提升 JavaScript 运行效率和支持 HTML5 各种新特性为主要目标,促进了浏览器的良性竞争。在这一场战争中,Chrome 攻城略地,抢夺 IE 市场份额。2013 年,Chrome 超过 IE,成为市场份额最高的浏览器。2016 年,Chrome 占据了浏览器市场的半壁江山。

自 2008 年以来,浏览器中不断支持的 HTML5 新特性让开发者激动不已:WebWorker 可以让 JavaScript 运行在多线程中,WebSocket 可以实现前端与后台的双工通信,WebGL 可以创建 Web3D 网页游戏……

Node.js 的爆发

早在 1994 年,Netspace 就公布了其 Netspace Enterprise Server 中的一种服务器脚本实现,叫做 LiveWire,是最早的服务器端 JavaScript,甚至早于浏览器中的 JavaScript。对于这门图灵完备的语言,Netspace 很早就开始尝试将它用在后端。

微软在 1996 年发布的 IE 3.0 中内嵌了自己的 JScript语言,其兼容 JavaScript 语法。1997 年年初,微软在它的服务器 IIS 3.0 中也包含了 JScript,这就是我们在 ASP 中能使用的脚本语言。

1997 年,Netspace 为了用 Java 实现 JavaScript 而创建了 Rhino 项目,最终 Rhino 演变成一个基于 Java 实现的 JavaScript 引擎,由 Mozilla 维护并开源。Rhino 可以为 Java 应用程序提供脚本能力。2006 年 12 月,J2SE 6 将 Rhino 作为 Java 默认的脚本引擎。

SpiderMonkey 是 Mozilla 用 C/C++ 语言实现的一个 JavaScript 引擎,从 Firefox 3.5 开始作为 JavaScript 编译引擎,并被 CouchDB 等项目作为服务端脚本语言使用。

可以看到,JavaScript 最开始就能同时运行在前后端,但时在前后端的待遇却不尽相同。随着 Java、PHP、.Net 等服务器端技术的风靡,与前端浏览器中的 JavaScript 越来越流行相比,服务端 JavaScript 逐渐式微。

2008 年 Chrome 发布,其 JavaScript 引擎 V8 的高效执行引起了 Ryan Dahl 的注意。2009 年,Ryan 利用 Chrome 的 V8 引擎打造了基于事件循环的异步 I/O 框架 —— Node.js 诞生。

Node.js 具有以下特点:

基于事件循环的异步 I/O 框架,能够提高 I/O 吞吐量
单线程运行,能够避免了多线程变量同步的问题
使得 JavaScript 可以编写后台代码,前后端编程语言统一。
Node.js 的出现吸引了很多前端开发人员开始用 JavaScript 开发服务器代码,其异步编程风格也深受开发人员的喜爱。Node.js 的伟大不仅在于拓展了 JavaScript 在服务器端的无限可能,更重要的是它构建了一个庞大的生态系统。

2010 年 1 月,NPM 作为 Node.js 的包管理系统首次发布。开发人员可以按照 CommonJS 的规范编写 Node.js 模块,然后将其发布到 NPM 上面供其他开发人员使用。目前 NPM 具有 40 万左右的模块,是世界上最大的包模块管理系统。

Node.js 也催生了 node-webkit 等项目,用 JavaScript 开发跨平台的桌面软件也成为可能。Node.js 给开发人员带来了无穷的想象,JavaScript 大有一统天下的趋势。

移动 Web 和 Hybrid App
随着 iOS 和 Android 等智能手机的广泛使用,移动浏览器也逐步加强了对 HTML5 特性的支持力度。

移动浏览器的发展,导致了流量入口逐渐从 PC 分流到移动平台,这是 Web 发展的新机遇。移动 Web 面临着更大的碎片化和兼容性问题,jQuery Mobile、Sencha Touch、Framework7、Ionic 等移动 Web 框架也随之出现。

相比于 Native App,移动 Web 开发成本低、跨平台、发布周期短的优势愈发明显,但是 Native App的性能和 UI 体验要远胜于移动 Web。移动 Web 与 Native App 孰优孰劣的争论愈演愈烈,在无数开发者的实践中,人们发现两者不是替代关系,而是应该将两者结合起来,取长补短,Hybrid 技术逐渐得到认同。

Hybrid 技术指的是利用 Web 开发技术,调用 Native 相关 API,实现移动与 Web 二者的有机结合,既能体现 Web 开发周期短的优势,又能为用户提供 Native 体验。

根据实现原理,Hybrid 技术可以分为两大类:

将 HTML 5 的代码放到 Native App 的 WebView 控件中运行,WebView 为 Web 提供宿主环境,JavaScript 代码通过 WebView 调用 Native API。典型代表有 PhoneGap(Cordova) 以及国内的 AppCan 等。

将 HTML 5 代码针对不同平台编译成不同的原生应用,实现了 Web 开发,Native 部署。这一类的典型代表有 Titanium 和 NativeScript。

Hybrid 一系列技术中很难找出一种方案适应所有应用场景,我们需要根据自身需求对不同技术进行筛选与整合。

---------------------

部分内容转自:https://blog.csdn.net/freekiteyu/article/details/79927047

原文地址:https://www.cnblogs.com/abcdecsf/p/9906807.html

时间: 2024-10-30 11:00:04

前端发展简史的相关文章

Web前端发展简史

Web前端发展简史 有人说“前端开发”是IT界最容易被误解的岗位,这不是空穴来风.如果你还认为前端只是从美工那里拿到切图, JS和CSS一番乱炖,难搞的功能就去网上信手拈来,CtrlC + Ctrl V的话,那就正中了这份误解的下怀.经过十几年的发展,web前端早已脱离了原来边缘化的形态,扮演了移动互联网开发链条中最关键的角色,是应用或产品能否打动用户的踹门砖.那么什么是前端开发,其又包含了哪些内容? 前端开发的定义 从狭义的定义来看,“前端开发”是指围绕HTML.JavaScript.CSS这

前端模块化发展简史

前端发展日新月异,短短不过 10 年已经从原始走向现代,甚至引领潮流.网站逐渐变成了互联网应用程序,代码量飞速增长,为了支撑这种需求和变化,同时兼顾代码质量.降低开发成本,接入模块化势在必行.伴随这一变化的是相对应的构建工具的快速成长,或是为了优化.或是为了转义,都离不开这类工具. 所谓温故而知新,本篇回顾总结下前端模块化的发展历程及辅助工具.在回顾中可以更清晰的看到当前我们用的方案所处的位置,为什么会发展到这一步,目前模块化方案带来的优势等. 1. 没有模块化的日子 最开始 JavaScrip

Intel CPU 发展简史

Intel CPU 发展简史 1971年11月15日:4004 1971年11月15日,Intel公司的工程师霍夫发明了世界上第一个商用微处理器-4004.这款4位微处理器集成了2250个晶体管,晶体管之间的距离是10微米,能够处理4bit的数据,每秒运算6万次,频率为108KHz,前端总线为0.74MHz (4bit).原为日本Busicom公司的计数器开发. 编号为4004,第一个"4"代表此芯片是客户订购的产品编号,后一个"4"代表此芯片是英特尔公司制作的第四

经济学发展简史

经济学是研究人类社会在各个发展阶段上的各种经济活动和各种相应的经济关系,及其运行.发展的规律的科学. 经济活动是人们在一定的经济关系的前提下,进行是生产.交换.分配.消费以及与之有密切关联的活动.在经济活动中,存在以较少耗费取得较大效益的问题.经济关系是人们在经济活动中结成的相互关系,在各种经济关系中,占主导地位的是生产关系. 经济一词,在西方源于希腊文,原意是家计管理.古希腊哲学家色诺芬的著作<经济论>中论述了以家庭为单位的奴隶制经济的管理,这和当时的经济发展状况是适应的. 在中国古汉语中,

web前端入坑第五篇:秒懂Vuejs、Angular、React原理和前端发展历史

秒懂Vuejs.Angular.React原理和前端发展历史 2017-04-07 小北哥哥 前端你别闹 今天来说说 "前端发展历史和框架" 「前端程序发展的历史」 「 不学自知,不问自晓,古今行事,未之有也 」 我们都知道如今流行的框架:Vue.Js.AngularJs.ReactJs.已经逐渐应用到各个项目和实际应用中,它们都是MVVM数据驱动框架系列的一种. 在了解MVVM之前,我们先回想一下前端发展的历史阶段,做到心中有数,才会更好理解. 这段回想历史.由于网上就可查不少资料,

前端发展这么快,我们该怎么学习?

web前端领域发展很快,各种新技术新思想不断涌现,这是一个好现象.但是前端发展太快也带来一些问题,比如有同学就问到我究竟应该学些什么,Angular.js.React.Node.js.ES6.ES7.CoffeeScript.TypeScript--似乎永远有太多东西需要学习,有些东西好像还没学明白就被另一些新的技术取代而"过时了". 其实还是那句话,前端工程师首先是软件工程师,基础是最重要的,如果基础不扎实,一切应用技能就都是"浮云".前端的基础是什么?HTML.

Linux发展简史

一.Linux发展简史 1.1969年以前:Bell,MIT与GE的"Mutics"系统 Bell:贝尔实验室,隶属于AT&T公司 MIT:麻省理工学院 GE:通用电气公司 Mutics:有"多数"的意思,意在让多人同时使用一台主机的资源(多用户) ·60年代初,MIT开发出分时操作系统,最多同时提供30台终端机(技术上的限制)连接一台大型主机,以让更多用户可以同时使用同一台昂贵主机的资源: ·1965年,Bell.MIT与GE共同发起Mutics项目,目的

1.Java的发展简史

命名:1991年,Gosling自己起名叫Oak(橡树),后改成现在的java(咖啡). 1995年5月23日,Java语言诞生 . 1998年12月Java 1.2版本发布后三天,Sun公司将其名称改为:Java2标准版软件开发工具箱1.2版本(即J2SE); Sun销售部人员感觉增加小数点后面的数值并不足以体现1.2版本的重大改进,但是这是发布之后才意识到这个问题的,所以JDK的命名版本也一直延用小数代表版本的方式. 1999年6月,发布了三个版本:标准版(J2SE).企业版(J2EE)和微

1.3、Java发展简史

Java发展简史 版本 年份 语言新特性 类与接口的数量 1.0   1996 语言本身 211 1.1   1997 内部类    477 1.2 1998 strictfp修饰类 1524 1.3 2000 无 1840 1.4 2002 断言 2723 5.0 2004 泛类型.for each 可变元参数 自动装箱.元数据.枚举.静态导入 3279 6 2006 无 3793 7 2011 基于字符串的switch.钻石操作符 二进制字面量.异常处理改进 4024 8 2014 lamb