BOM与DOM的区别分析


Posted in Javascript onOctober 26, 2010

BOM与DOM的区别

§DHTML技术各项功能的实现都依赖于使用客户端脚本与浏览器宿主及在宿主中输出的Web页面之间的交互,这种交互是通过对象这个技术手段实现的。

§BOM即Browser Object Model浏览器对象模型,是在客户端脚本核心的基础上实现的扩展API,通过该API可以使用脚本访问浏览器窗口及其文档对象的各个方面。BOM从IE3.0/NS3.0开始引入。

§在BOM API中,把Web浏览器的各个主要外显特性、Web页面及其标记、内容等都封装成一个个对象,通过这些对象提供的成员访问窗口、文档、元素对象等,并在此基础上实现了对象的事件支持机制。所有BOM对象之间存在一定的关联关系。

§学习BOM技术主要就是学习如何利用客户端脚本使用BOM对象,通过这些封装的BOM对象可实现很多DHTML功效。

§BOM技术不是标准化的Web技术,因浏览器而异。正因为如此大大限制了DHTML技术的应用领域和发展前景。

§不同浏览器实现的BOM技术并不统一,这是造成DHTML技术实现差异的主要原因,由此W3C在BOM技术的基础上进行扩充与改善、优化,制定了新的统一技术规范标准,即DOM(Document Object Model)文档对象模型技术。

§DOM技术最初是针对XML文档的解析与控制而制定的技术规范,但可把HTML文档XML化成XHTML文档,使用DOM技术来访问Web页面文档中的各类对象。

§目前W3C为DOM技术规范制定了三个不同的级别,即DOM Level 1/2/3。IE5/NS6开始全面支持DOM Level 1。有时有人也把BOM技术称为DOM Level 0[W3C官方没有此说法!]。

§DOM技术的核心是把XML(包括XHTML)文档结构解析为树状结构,每个标记看作是一个节点Node,各节点之间存在某种关系,并通过这些关系来相互访问。

§DOM技术与XML技术密切相关,涉及的技术内容庞杂,学习难度较高,但掌握了BOM技术后再学习DOM技术就有一定的帮助。

§不仅可以在JavaScript之类的脚本语言中使用DOM技术,在Java之类的重量级程序设计语言中也广泛使用DOM技术。

Javascript 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
网上抓的一个特效
May 11 Javascript
JS 文字符串转换unicode编码函数
May 30 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
22点关于jquery性能优化的建议
May 28 Javascript
jQuery实现ichat在线客服插件
Dec 29 Javascript
JS中生成随机数的用法及相关函数
Jan 09 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
原生js实现日历效果
Mar 02 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
Sep 18 Javascript
React forwardRef的使用方法及注意点
Jun 13 Javascript
js下判断 iframe 是否加载完成的完美方法
Oct 26 #Javascript
Javascript下判断是否为闰年的Datetime包
Oct 26 #Javascript
基于jquery的给文章加入关键字链接
Oct 26 #Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 #Javascript
自写的一个jQuery圆角插件
Oct 26 #Javascript
jQuery获取地址栏参数插件(模仿C#)
Oct 26 #Javascript
自制轻量级仿jQuery.boxy对话框插件代码
Oct 26 #Javascript
You might like
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
js中this用法实例详解
2015/05/05 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
详解JS函数防抖
2020/06/05 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
SQL SERVER中的流程控制语句
2022/05/25 SQL Server