啥子是DOM???总听,不晓得啥

远古时代,浏览器加载完HTML页面就没了,也就是加载一个文本。

但是之后JS出现,要修改HTML文本,这么大的文本,你咋晓得要修改那个地方?就算修改完了浏览器还要在重新解析加载一遍,耗时耗性能啊!

于是搞出快捷、高效、可跟踪的文档修改方式 -- DOM应运出世!

1、对于浏览器 ,首次解析文档时,把HTML每个标签解析成一个节点,父元素与子元素连线,整个文档最终形成DOM树的树形结构。

2、浏览器再根据DOM树呈现页面。同时浏览器跟踪DOM树变化,一旦DOM树变化,页面跟着变化。

3、对于JS,原本对于文档的修改,现在只需要对DOM树的节点进行修改即可,也就是DOM节点对象 就是JS对象,方便操作方法和属性。同时在JS修改节点后浏览器也可以快速追踪到,只需要重新渲染被修改的局部画面(回流 || 重绘)

4、最终,DOM组件发展成为一套不依托于浏览器和JS的独立规范,提供了一套完整的访问和修改文档的接口,这些API在浏览器中被广泛使用,不过,也支持python等。

总结:DOM这个名词应该有两层含义,第一个是根据文档建模出来的一个树形模型,即是DOM树,这是站在浏览器方面的看法。从编程语言来看,它提供了一套操纵文档的API

狭义:DOM树

广义:操纵文档的API

相关推荐
顾安r4 小时前
11.8 脚本网页 星际逃生
c语言·前端·javascript·flask
Hello.Reader4 小时前
Data Sink定义、参数与可落地示例
java·前端·网络
im_AMBER4 小时前
React 17
前端·javascript·笔记·学习·react.js·前端框架
谷歌开发者5 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
一晌小贪欢6 小时前
【Html模板】电商运营可视化大屏模板 Excel存储 + 一键导出(已上线-可预览)
前端·数据分析·html·excel·数据看板·电商大屏·大屏看板
发现你走远了6 小时前
连接模拟器网页进行h5的调试(使用Chrome远程调试(推荐)) 保姆级图文
前端·chrome
街尾杂货店&7 小时前
css - 实现三角形 div 容器,用css画一个三角形(提供示例源码)简单粗暴几行代码搞定!
前端·css
顺凡7 小时前
删一个却少俩:Antd Tag 多节点同时消失的原因
前端·javascript·面试
小白路过7 小时前
CSS transform矩阵变换全面解析
前端·css·矩阵
爬山算法7 小时前
Redis(110)Redis的发布订阅机制如何使用?
前端·redis·bootstrap