本系列的博客是由本人在阅读《JavaScript DOM编程艺术》一书过程中做的总结。前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助,所以

如果您也看过这本书,希望不要喷小的“抄袭”,其实我也懒得敲这些文字也想简单粗暴地上代码,但是只有实践没有理论不容易自己理解,为避免误导,该“抄”的地方还是要“抄”的,哈哈~~

一、JavaScript的起源

JavaScript是Netscape公司和Sun公司合作开发的。在JavaScript出现之前,Web浏览器不过是一种能够显示超文本文档的简单的软件。而在JavaScript出现之后,网页的交互性得到了很大的改善。

JavaScript的第一个版本,即JavaScript1.0出现在1995年推出的Netscape Navigator2浏览器中。

在JavaScript1.0发布时,Netscape Navigator主宰着市场,IE则扮演着追赶者的角色。微软在推出IE3的时候发布了自己的VBScript语言,同时以Jscript为名发布了JavaScript的第一个版本,以此

很快跟上了Netscape的步伐。面对微软的竞争,Netscape和Sun公司联合ECMA(欧洲计算机制造协会)非JavaScript语言进行了标准化。于是出现了ECMAScript语言,这是同一个语言的另一个名字。

虽说ECMAScript这个名字没有流行开来,但人们现在讨论的JavaScript实际上就是ECMAScript。

到了1996年,JavaScript、ECMAScript和JScript已经站稳了脚跟。Netscape和微软都在各自的浏览器里不同程度地支持JavaScript1.1。

二、DOM

本书主要讲的内容就是DOM编程艺术,所以先来对DOM进行一个大概的了解。简单的说,DOM是一套对文档的内容进行抽象和概念化的方法。DOM是Document Object Model的简写,即文档对象模型,

所以望文生义就能猜到这是将文档视为对象的一种方法。既然是对象,就应该有属性,所以JavaScript的DOM编程其实就是通过文档对象获取属性并对其进行操作。

三、浏览器战争

1、DHTML

DHTML是“Dynamic HTML”(动态HTML)的简称。DHTML并不是一项新技术,而是描述HTML、CSS和JavaScript技术组合的术语。其意义包含下面三个方面:

(1) 利用HTML把网页标记为各种元素

(2) 利用CSS设置元素样式和显示的位置

(3) 利用JavaScript实时地操控页面和改变样式

2、浏览器之间的冲突

Netscape公司的DOM使用了专有元素,这些元素称为层Layer。层有唯一的ID,JavaScript需要像下面这样引用它们:

document.layers[‘element’]

而在IE中这个元素要像下面这样引用:

document.all[‘element’]

像这样的区别还有很多,这就导致开发人员在编写DOM脚本代码时必须知道该脚本将运行在何种浏览器上。同时,为了确保能够正确地向不同的浏览器提供与之相应的代码,还要写一些代码探查在

客户端运行的浏览器是哪种。

四、定制标准

就在浏览器厂商们以DOM为开发武器展开营销大战的同时,W3C已经结合大家的优点推出了一个标准化的DOM。令人开心的是,浏览器厂商们也能抛开彼此之间的敌意,携手W3C制定新的标准,

并与1998年10月完成了”第一级DOM“。浏览器厂商们感兴趣的只不过是通过JavaScript控制网页的具体方法,而W3C推出的标准化DOM则可以让任何一种程序设计语言对使用任何一种标记语言编写

出来的任何一份文档进

行操控。

1、浏览器以外的考虑

DOM是一种API(应用编程接口),即一种得到各方共同认可的基本约定,例如摩尔斯码、国际时区和化学元素周期表一样,都是不同科学领域的标准。所谓无规不成方圆,DOM就是这样一个标准,开

发人员必须遵循这一套标准开发。

W3C对DOM的定义是:”一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和改变文档的内容、结构和样式“。W3C推出的标准化DOM,在独立性和适用范围等诸多方面

都远远超出了浏览器厂商们推出的各种专有的DOM,因此才成为编程语言领域的一种标准。

2、浏览器战争的结局

浏览器战争影响最大的是网站设计人员。跨浏览器开发是他们的噩梦,除了JavaScript的差异之外,Netscape和IE在对CSS的支持上也有很大的差别,导致编写同时支持这两种浏览器的样式成了一种

黑色艺术。因此浏览器厂商们的这种行为遭到人们的激烈的反对,一个名为Web标准计划的小组应用而生,鼓励浏览器制造商们采用W3C制定和推荐的各项标准,也就是在浏览器厂商们的帮助下得以起草

和完善的那些标准,这才使浏览器产品对web标准的支持得到了极大的改善。

3、崭新的起点

如今的浏览器市场已经跟以前的完全不一样。首先Netscape已经不复存在,而一些新秀又迅速崛起,到目前,市场上比较主流的浏览器有Chrome、Firefox、Opera和IE.而且几乎所有的浏览器里都

内置了对DOM的支持,终于实现了“编写一次,到处运行”的梦想,只要遵循DOM标准,开发人员就可以放心大胆地去做。

以上就是第一章的内容,通过介绍因为JavaScript脚本引起的浏览器大战,引出W3C提出的行业级DOM标准,进一步介绍DOM的含义,最后又回归到浏览器大战的结局上说明了W3C的DOM标准之

重要性,可见是浏览器促进了JavaScript语言的进步,所以在学习JavaScript之前要对浏览器有一定的了解,当然,我说的是浏览器的底层技术,比如解析、识别语言等。

转载于:https://www.cnblogs.com/hellowhy/p/6165290.html

JavaScript DOM编程艺术第一章:JavaScript简史相关推荐

  1. JavaScript DOM 编程艺术 (第二版)学习之5-6章

    JavaScript DOM 编程艺术 (第二版)学习之5-6章 第五章 最佳实践 5.1 过去的错误 5.2 平稳退化 5.2.1 "javascript:"伪协议 5.2.2 ...

  2. JavaScript DOM 编程艺术 (第二版)学习之3-4章

    JavaScript DOM 编程艺术 (第二版)学习之3-4章 第三章 DOM 3.1 文档:DOM中的"D" 3.2 对象:DOM中的"O" 3.3 模型: ...

  3. JavaScript Dom编程艺术

    当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运 ...

  4. 初读JavaScript DOM编程艺术(一)

    JavaScript DOM编程艺术--前三章概念总结 一. 概述 1.什么是JavaScript 2.什么是DOM 二. JavaScript 语法 1. 语句和注释 2. 变量和数组 三. DOM ...

  5. 重读《JavaScript DOM编程艺术》(第一版)

    今天来了雅兴去图书馆看书.把<JavaScript DOM编程艺术>温习了一遍,平时写js的机会不是特别多,很多知识都有些模糊了. 伴随着身边键盘卡啦卡啦的声音,一位手速不是一般的快的程序 ...

  6. 《JavaScript DOM 编程艺术》读书笔记

    <JavaScript DOM 编程艺术>读书笔记--其一 第二章 1.Javascript代码编写方式: (1)将JavaScript代码放在文档<head>标签中的< ...

  7. JavaScript DOM编程艺术(第二版)

    JavaScript DOM编程艺术简要介绍 第二章: JavaScript语法 语法 语句 注释 变量 数据类型 数组 对象 操作 条件语句 比较操作符 逻辑操作符 循环语句 while循环 for ...

  8. JavaScript DOM编程艺术学习笔记(一)

    嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...

  9. JavaScript DOM编程艺术简略笔记

    简略目录 1.BOM 2.DHTML 3.数组 4.条件判断的注意点 5.函数中变量的作用域问题 6.几种对象的简介 7.BOM和DOM 8.DOM操作中的一些特别点 9.JS文件与CSS文件的引入方 ...

最新文章

  1. conda如何添加,删除镜像channel,以及其他常见使用方法。
  2. 一对多查询,合并成一条数据
  3. H3C S5560交换机风扇反转告警
  4. tensorflow 动态数组 TensorArray
  5. PPT图片内嵌文字效果
  6. slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...
  7. stm32F1使用SD卡实现IAP
  8. mysql性能优化 硬件优化_mysql性能优化学习笔记(6)数据库配置优化硬件优化...
  9. 华为系统10.0是鸿蒙吗,暂时忘记鸿蒙!华为EMUI 10.0发布时间确认:这才是主角...
  10. [Java] 蓝桥杯ADV-203 算法提高 8皇后·改
  11. 函数式编程与命令式编程的学习难度比较
  12. windows server 2003 下载
  13. 每周经典电路分析:采样保持放大器(1)
  14. 夜神模拟器无法安装Charles证书
  15. 中文语音软件再次升级,即将发布百度语音助手
  16. c语言递归阶乘汉诺塔文曲星游戏词典制作文件调用整合
  17. 郁亮的“权力游戏”,万科的“内外战争”
  18. 忠告:使用TNT版本PD的不要升级新版本Mac系统
  19. python3数据处理(一)-- 解析XML,Excle文件
  20. 如何创建React项目

热门文章

  1. python `__slots__`
  2. ConstantSourceNode
  3. MySQL Encryption and Compression Functions(加密)
  4. hdfs java api读写
  5. 电脑尺寸大小在哪里看_科技资讯:电脑弹出本地计算机上的服务启动后停止的提示在哪里看...
  6. 适用于 ESXi 6.x 中的 OpenSLP 安全漏洞 (CVE-2019-5544) 的权宜措施 (76372)
  7. 腾讯云认证考试常见问题答疑
  8. Kubernetes学习总结(13)—— Kubernetes 各个组件的概念
  9. Nginx学习总结(15)—— 提升 Web 应用性能的十个步骤
  10. Spring学习总结(30)——Spring事物(@transactional注解)在什么情况下会失效,为什么?