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 相关文章推荐
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
js工具方法弹出蒙版
May 08 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
JavaScript中最简洁的编码html字符串的方法
Oct 11 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
Sep 16 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
看看“疫苗查询”小程序有温度的代码
Jul 31 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 Javascript
Node 使用express-http-proxy 做api网关的实现
Oct 15 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP编程风格规范分享
2014/01/15 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
jquery中radio checked问题
2015/03/16 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python yield和Generator函数用法详解
2020/02/10 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
开发房地产协议书
2014/09/14 职场文书
授权委托书
2015/01/28 职场文书
大学生个人学习总结
2015/02/15 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python