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在iframe中无法弹出对话框的解决方法
Jan 12 Javascript
判断浏览器的内核及版本号方法汇总
Jan 05 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
JavaScript动态修改弹出窗口大小的方法
Apr 06 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
详解javascript遍历方式
Nov 11 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
node vue项目开发之前后端分离实战记录
Dec 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
PHP通用检测函数集合
2011/02/08 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
php显示页码分页类的封装
2017/06/08 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
python中几种自动微分库解析
2019/08/29 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python datetime处理时间小结
2020/04/16 Python
Python devel安装失败问题解决方案
2020/06/09 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
业务部主管岗位职责
2014/01/29 职场文书
新书吧创业计划书
2014/01/31 职场文书
公司担保书格式范文
2014/05/12 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书