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 相关文章推荐
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
Mar 30 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
理解javascript中DOM事件
Dec 25 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
JS实现简易刻度时钟示例代码
Mar 11 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
vue中的适配px2rem示例代码
Nov 19 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
php部分常见问题总结
2008/03/27 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
详解angular element()方法使用
2017/04/08 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
原生js实现自定义消息提示框
2020/11/19 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
模具专业毕业推荐信
2014/03/08 职场文书
诚信承诺书模板
2014/05/26 职场文书
小学捐书活动总结
2014/07/05 职场文书
2014年文秘工作总结
2014/11/25 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang