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 相关文章推荐
javascript实现的DES加密示例
Oct 30 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
js实现浏览本地文件并显示扩展名的方法
Aug 17 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
原生javascript实现自动更新的时间日期
Feb 12 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
ReactJS实现表单的单选多选和反选的示例
Oct 13 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 Javascript
JS数组扁平化、去重、排序操作实例详解
Feb 24 Javascript
如何在vue-cli中使用css-loader实现css module
Jan 07 Vue.js
jQuery实现手风琴特效
Jan 11 jQuery
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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
动态加载iframe
2006/06/16 Javascript
IE中jscript/javascript的条件编译
2006/09/07 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python的命名规则知识点总结
2019/10/04 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python爬虫教程知识点总结
2020/10/19 Python
python爬取招聘要求等信息实例
2020/11/20 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
伦敦奥运会口号
2014/06/13 职场文书
活动经费申请报告
2015/05/15 职场文书
python tkinter模块的简单使用
2021/04/07 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers
Java数组详细介绍及相关工具类
2022/04/14 Java/Android