1.1JavaScript的起源
JavaScript由Netscape与Sun公司共同开发。Js出现之前,浏览器只能显示超文本文档。而Js的出现让浏览器的交互得到大幅度的改善。Js1.0于1995年出现在Netscape Navigator 2浏览器中。
当时Netscape Navigator是浏览器市场的主宰。微软IE为了开拓自己的市场推出了VBScript语言,并且以JScript为名发布了JS的一个版本,很快的追上了Netscape Navigator。Netscape和Sun采取对应措施,联合ECMA(欧洲计算机制造商协会)对JS进行标准化,于是出现ECMAScript语言,也就是我们现在所说的ES6,ES7等。到了1995年,两家的浏览器不同程度的支持JS1.1语言。
JS是脚本语言,通过浏览器执行而非独立运行。这种限制让JS不可能像C或者JAVA那样的编程语言有广泛用途。但相比其他编程语言,JS相对来说易于学习。
JS提供一系列操控浏览器的手段,如调整浏览器宽度高度位置等属性,这种设置属性的方法可以看作BOM(浏览器模型对象),JS初期版本提供了一种初级DOM。
1.2 DOM
DOM是一套对文档内容进行抽象和概念化的方法。
在现实世界中,一位老师让你帮忙去隔壁教室拿一根粉笔。你和老师都知道知道隔壁,粉笔这些词汇的含义,所以你可以找到老师所需要的东西,
网页也是这样,在JS早期版本定义了images,forms等属于,才能像下面这般找到所需对象,引用它
document.images[2] //引用文档中第三张图片
document.forms['details'] //引用文档中名为details的表单
这种实验性质的DOM为0级DOM,在未形成标准的初期,这种DOM通常用来翻转图片和验证表单数据。在Netscape和微软各自推出第四代浏览器,DOM开始陷入困境。
1.3 浏览器战争
两家公司与1997年发布第四代浏览器,大幅扩展DOM,通过Js完成的功能大大增加,一个新的词汇出现了:DHTML
1.3.1 DHTML
DHTML是“Dynamic HTML”的简称,它不是新技术,不过是HTML,CSS,JS技术组合的术语。它的含义是:
- 利用HTML把网页标记为各种元素
- 利用CSS设置元素样式和位置
- 利用Js实时操作页面
利用DHTML,复杂的效果变得容易是按,例如,先用HTML标记一个页面元素:
<div id="myelement">This is my element</div>
利用CSS定义位置样式:
#myelement{
position:absoulte;
left:50px;
top:100px;
}
接下来利用JS改变myelement元素的 left和top样式,可以让他们在页面上随意移动,不过这只是理论。
不幸的是,两家浏览器使用不兼容DOM。虽然目标一样,实行的办法却不同。
1.3.2 浏览器之间的冲突
Netscape 公司的DOM使用专有元素,这些元素成为层(layer),层有位移ID,JS代码需要这样引用它:
document.layers['myelement']
而微软DOM需要这样引用:
document.all['myelement']
两种DOM差异远不止这一点,这样导致了程序员必须知道这些代码运行在哪种浏览器,所以不得不编写两次,以防万一。而且还需要编写代码去探查浏览器是哪种。
1.4 制定标准
正当两家打得火热,W3C出手推出一个标准化的DOM,各家浏览器厂商抛开敌意携手W3C指定新标准,于1998年完成第一级DOM。
1.4.1 浏览器以外的考虑
DOM是一种API,是一种公认的标准,例如国际时区,化学元素等等,制定标准是为了方便合作。
1.4.2 浏览器战争的结局
微软战胜了Netscape,因为每个微软系统都自带IE。开发人员是这场战争中受到影响最大的人,跨浏览器开发是他们的噩梦,除了JS意外,CSS方面也有诸多不同。编写同时支持两种浏览器样式表和脚本的工作成了一门黑色艺术。
浏览器厂商自私的姿态遭到人们强烈反对。WaSP 小组应运而生。他鼓励浏览器厂商采用W3C的标准。下一代浏览器产品对Web的标准有着极大的改善。
1.4.3 崭新的起点
早期浏览器大战至今,市场易发生巨大变化,今天的Safair,Chrome,Firefox对DOmain都有着很好的支持,很多手机浏览器也在使用者WebKit渲染引擎。不断提高上网体验。但目前还没有一款浏览器能完美无瑕的实现W3C DOM但覆盖率已达百分之九五。现在终于实现了编写一次,随处运行的梦想。
网友评论