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 判断 object 的特定类转载
Feb 01 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
Bootstrap组件(一)之菜单
May 11 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
Aug 10 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
jQuery实现弹幕效果
Feb 17 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
浅谈React中组件间抽象
Jan 27 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
django创建超级用户过程解析
2019/09/18 Python
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
《燕子》教学反思
2014/02/18 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
关于教师节的广播稿
2014/09/10 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
灵山大佛导游词
2015/02/04 职场文书
七年级语文教学反思
2016/03/03 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js