JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读《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之前要对浏览器有一定的了解,当然,我说的是浏览器的底层技术,比如解析、识别语言等。
JavaScript DOM编程艺术第一章:JavaScript简史的更多相关文章
- JavaScript DOM编程艺术-第一章
发现基础不是很好,补习一下.37买了2本书(dom编程和高级程序设计). 以前读书总是自己勾勾画画,有点没意思.现在写下来,说不定会成为传世经典.哈哈...........随便扯扯淡. 第一天(201 ...
- [书籍翻译] 《JavaScript并发编程》第一章 JavaScript并发简介
> 本文是我翻译<JavaScript Concurrency>书籍的第一章,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并 ...
- Javascript的一些技巧(《Javascript DOM编程艺术》、Javascript语言精粹)
1.什么时候用布尔变量当变量 假设你需要一个这样的变量:我在睡觉——存为一个值:我没在睡觉——存为另一个值. 一般的做法: var stateOne="睡觉",stateTwo=& ...
- [书籍翻译] 《JavaScript并发编程》 第二章 JavaScript运行模型
本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解J ...
- 《JavaScript Dom 编程艺术》读书笔记-第4章
我的前端入门第一本书是<JavaScript Dom 编程艺术>,网上查找资料发现前端的入门推荐书籍最受好评的就是这本和<JavaScript 高级程序设计>了.之所以先选这本 ...
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- JavaScript DOM编程艺术(第2版)的简单总结
介绍 JavaScript DOM编程艺术(第2版)主要讲述了 JavaScript.DOM 和 HTML5 的基础知识,着重讲述了 DOM 编程,并通过几个实例演示了具有专业水准的网页开发. 下面介 ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
随机推荐
- UVA 1600
Description A robot has to patrol around a rectangular area which is in a form of mxn grid (m rows a ...
- Flash Builder 4.6 界面显示一半中文一半英文?
Flash Builder 4.6 (简称 Flex 4.6 或 FB 4.6)启动后界面有时候会显示一半中文,一半英文(这种奇葩的情况一般发生在 FB 4.6 刚安装后或操作系统安装一个类似 SP1 ...
- oracle批量导出AWR报告
工作需求:项目中需要把生产库中所有的AWR报告dump出来,然后导入到方便测试的数据库中.在测试库中的AWR报告需要根据dbid和实例名逐个导出,如果遇到很多再加上RAC系统,会很麻烦.在网上找了一些 ...
- C++的XML编程经验――LIBXML2库使用指南[转]
C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...
- 169 Majority Element [LeetCode Java实现]
题目链接:majority-element /** * Given an array of size n, find the majority element. The majority elemen ...
- iOS开发——总结篇&关键字介绍
关键字介绍 在做iOS开发中,系统的各个关键字处处都是,但是未必每一个关键字都是那么的明白,所以罗列出一些关键字供大家互相学习,有不完善之处请指正,谢谢 atomic atomic是Objc使用的一种 ...
- iOS开发——UI篇OC篇&layoutSubviews和drawRect
layoutSubviews和drawRect 首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘. layoutSubviews在以下情况下 ...
- Android(java)学习笔记73:线程组的概述和使用
Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. (1)默认情况下,所有的线程都属于主线程组. public final Thre ...
- Android(java)学习笔记112:局部位置的内部类的介绍
1.局部内部类 /* 局部内部类 A:可以直接访问外部类的成员 B:在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能 面试题: 局部内部类访问局部变量的注意事项? A:局部 ...
- 【数学,方差运用,暴力求解】hdu-5037 Galaxy (2014鞍山现场)
话说这题读起来真费劲啊,估计很多人做不出来就是因为题读不懂...... 从题目中提取的几点关键点: 题目背景就是银河系(Rho Galaxy)中的星球都是绕着他们的质心(center of mass) ...