Web标准

  Tim Berners-Lee在1991年创建 HITML时,只是想利用这个技术,通过一组标签为他的全局超文本项目(称为 World Wide Web)标记科学文献。没想到,20世纪90年代中期,这个技术成为两大商业软件巨头厮杀的战场。HTML是元语言SGML(Standard Generalized Markup Language,标准的通用标记语言)的一种简单的派生形式。SGML在学术机构应用了数十年,其目的是把文档和创建文档的结构一起保存起来。HTML依赖于超文本传输协议(HypertextTransferProtoco,HTTP),在资源和査看者之间来回传递文档(例如,在服务器和客户端计算机之间)。这两种技术构成了Web的基础,到了20世纪90年代初期,人们很快发现,需要建立某种规范,以确保HTML和HTTP有通用的实现方式,这样才能在世界范围内进行通信。

  在1994年,Tim创立了万维网联盟( World Wide Web Consortium,W3C),该组织致力于对Web技术演变进行管理。它有3个主要目标:

。提供通用的访问技术,让任何人都能使用Web

。开发相应的软件环境,允许用户利用Web

。指导Web的发展,考虑由Web引发的法律、社会和经济问题

  Web技术规范的每个新版本成为标准之前,必须经过W3C严格的审核。HTML和HTTP期范都接受了这个审核,对这些规范的每一组更新都会产生标准的一个新版本。在成为完全可操作的标准之前,每个标准都必须经过草案、备选建议、推荐标准等阶段。在该过程的每个阶段,W3C联盟的成员都将投票表决哪些方面需要改进,甚至决定是否完全取消该标准,从头再来。

  这种创建标准格式的方法似乎非常痛苦、费力,并不像人们想象的是做尖端技术革命的先锋。实际上,20世纪90年代中期,很多软件公司感到这一过程太过漫长,因此决定自己实现一些革新,再提交给标准化组织进行审批。 Netscape率先在其浏览器中引入了新的元素,如<font△元素,以增强网页内容的表现力。这些元素大受欢迎,因此 Netscape添加了大量元素,允许用户修改网页的显示外观和样式。实际上, Javascript本身就是scape的一个革新。

  Microsoft加入这场战争时,通过E的最初两个版本来追赶 Netscape。但是,当1996年发布 Internet Explorer3时,为与 Netscape抗衡, Microsoft建立起一套大致相当的特性,可以添加自己的浏览器专用元素。Web测览器迅速分化为E和 Netscape两极,在一种浏测览器中能够显示的页面在另一种浏览器中经常无法显示。问题在于, Microsoft凭借在软件市场上无与伦比的强大地位,免费发放E,而Netscape仍需要销售其浏览器,因为它负担不起免费发布其旗舰产品。为了保持自己的竞争地位, Netscape需要提供新的特性,使用户宁愿花钱购买它的浏览器,也不使用免费的 Microsoft浏览器。

  这两个公司发布4.0版本的浏览器时,竞争达到了白热化程度,这个版本的测览器引入了动态页面的功能。遗憾的是, Netscape通过 <layer元素来实现该功能,而 Microsoft选择通过脚本语言的属性和方法来实现。W3C需要坚持其立场,因为它的三个主要目标之已经做出了让步:通用的访问技术。如果用户必须使用指定厂商的测览器才能访问特定的页面,访问技术如何通用化?W3C决定使用已有的标准HTML元素和层叠样式表,Microsoft的解决方案部分采用了这两项技术。结果, Microsoft在浏览器大战中取得了统治地位,并且从未拱手让出这个统治地位。 Microsoft的E仍是目前使用最广泛的浏览器,住 Chrome与 Firefox已经蚕食了它的不少市场份额。

  HTML4.01是一个相对稳定的HTML标准,其中包含大量特性,任何浏览器厂商都需要很长时间才能完全实现该标准,于是人们转而关注Web的其他领域。20世纪90年代后期,引入了一批新标准来控制HTML的呈现方式(样式表)和HTML在脚本中的表示方式(DOM)。还建立了其他标准,如可扩展标记语言( Extensible Markup Language,XM)提供了一种以保留其结构的方式来表示数据的通用格式。

  W3C网站(ww.w3rg)提供了大量处于创建各个阶段的标准。并不是每个标准都与我们有关,并不是每个我们关心的标准都能在该网站上找到,但是,绝大多数我们关心的标准都能在该网站中找到

下面将简要介绍与 Javascript有关的标准和技术,了解它们的相关背景。某些技术我们可能并不熟悉,但是至少应该知道存在这些技术。

HTML

  HTML标准由W3C维护。这个标准看起来相当简单,每一版本都似乎只引入了へ新元素。但实际上,由于浏览器厂商的竞争,使标准内容的制定变得异常复杂。 HIML\和2.0很简单,其定义文档很小。但当W3C讨论HTML3.0版时,所讨论的许多新功能已经被新扩展取代,例如< applet>和 style念元素取代了3.0版本浏览器的 appletstyle。因此HTML3.0版本被取消,一个新版本3.2成为标准。

  但是,应浏览器厂商的要求引入 HTML32的大量新特性偏离了 HTML的本质,因为HTML本质上仅用来定义结构。源自<font/>元素的新特性就偏离这个宗旨,在HTML中添加了不必要的外观特性。随着样式表技术的引入,这些外观特性就是多余的。因此,在3.0版本的浏览器中,有3种不同的方法定义某项文本的样式。哪种方法是正确的?同时使用这三种方法,文本最终使用哪个样式?HTML4.0标准处理了这些问题,指出了将在下一版本的标准中废弃(删除)的大量元素。HTML4.0是目前为止最庞大的版本,包了链接到样式表和DOM的特性,还增加了用于有视党障碍的人员及受忽视的弱势群体的特性。

  2004年,W3C关注 XHTML20规范,许多(地许是大多数Web开发团体都认为,该规范指向Web的错误方向。所以另一个团体 Web Hypertext Application Technology Working Group(web超文本应用技术工作组, WHATWG)开始建立HTML5。2009年,W3C正式废弃了 XHTML2.0,W3C和 WHATWG目前一起开发 HTML5。

  HTML5引入了许多新特性,首先是标识页面导航、页眉、页脚的新元素<nav/>,hede和<oer,还增加了<audo和<vdeo元素来代替< cobject。 HITMIL5也删除了<om和< -center△等单纯用于表示的元素,HIML5还定义了对拖放操作、定位、存储等的内置支持。

  注意: HTML5规范还未完全完成。但其中的许多特性已经完成。因此,目前的现代浏览器实现了它的许多特性。要读实际的规范,可以访问W3C网站hp/ww3. org/TR/html5/或 WHATWG当前标准htp/html,spec. whatwgorg/multipage/

ECMAScript

  Javascript的发展历程类似于HTML。它最初在 Netscape Navigator中使用,后来被添加到IE中。 Javascript I的E版本被命名为 Jscript,与 Netscape Navigator中的 Javascript常相似。但是很快,这两种实现方式之间就产生了差异,为这两种浏览器编写脚本时必须关注这些差异。

  奇怪的是,欧洲计算机制造商协会( European Computer Manufacturers AssociatECMA)为 Javascript提出了一个标准规范。直到 Javascript发布了几个版本后,オ开始制定 Javascript的标准。HTML一开始就是由W3C联盟制定的,而 Javascript是一个私有产品。这是 Javascript标准由另一个标准化组织管理的原因。 Microsoft和 Netscape都同意使用ECMA作为标准传播媒介论坛,因为ECMA能够快速地追踪相关标准,而且保持中立选择 Ecmascript这个名称是为了不偏向任何厂商,而且 Javascript中的Jawa是Sun公司许可 Netscape使用的商标。ECMA-262标准所制订的规范大致等价于 Javascript1.规范。

  但是, Ecmascript 7标准仅包含 Javascript I的核心特性,如数值、字符串和布尔等基本数据类型,Date、Aray、Math等内置对象,for、whil循环语句,以及if、else条件语句该标准没有包含客户端对象或集合,如 window、 document、 forms、 links和 Images。因此,Javascript和 Jscript都遵循该标准时,这个标准有助于使核心编程任务具备兼容性,但无助于使客户端对象的脚本编程在主流浏览器之间具备兼容性。仍存在一些不兼容的问题。

  现在所有的 Javascript实现方案都遵循当前的 Ecmascript标准,即2009年12月发布的 Ecmascript5。尽管 Microsoft与 Netscape在 Javascript f的实现方案上存在不少差异,但是它们非常接近,可以视为同一种语言。显然,标准在浏览器的实现方案上提供了统一的语言,尽管Javascript仍然存在类似HTML的特性竞争,但是程度大大降低了。

Posted on 2020-06-27 13:37  Schrodinger'sdoris  阅读(235)  评论(0编辑  收藏  举报