每个网页都生长着一种可以七十二变的虚拟树。
DOM 是 Document Object Model 的简称,中文译为文件物件模型,是浏览器提供的 API,并不是 JavaScript 语言的一部份。至於文件指的就是HTML 文件,等等!那为什麽又跟物件有关系? HTML 不就是一大堆让人眼花撩乱的 tag 和文字内容组成的吗?为什麽是物件?
以下纯属个人想像
如果把 HTML 的结构图想像成图画纸上的苹果树,为什麽是苹果树?没有什麽原因,纯粹因为我喜欢苹果。那麽有一天当大家都不喜欢苹果树,比较想看樱桃树,那我就得用另一张图画纸画上樱桃树,每当大家喜新厌旧的同时,就是我埋头苦画树干的时刻。
这时浏览器感人地派出 DOM 来神救援,DOM 的出现让平面的苹果树,变成像是乐高做成的苹果树,这麽一来就可以直接把红苹果换成青苹果,或是把苹果换成柳橙,莲雾或是芭乐。皆大欢喜~
我们还是认真一点来看看MDN的精准专业描述怎麽说:
The DOM represents the document as nodes and objects; that way, programming languages can interact with the page
那麽HTML又是怎麽从单纯的文件摇身一变成了DOM呢?那就得来了解一下浏览器是怎麽渲染网页的。
图片来源:High Performance Browser Networking - Chapter 10. Primer on Web Performance
长话短说可简述成下列五步骤:
粗略了解了 DOM Tree 和浏览器渲染网页的过程後,接下来几天就来一步步认识 DOM 的资料类型并探索如何操作 DOM 吧~
参考资料:
<<: Day 09 - Spring Boot 常用注释(下)
烟囱式架构 相对於中台架构,烟囱式架构就像多个互相独立的应用系统,代表着业务流程的区隔 ─ 重复的功...
今天重看了之前买的六角课程,复习登入与登出 登入时前端会向服务器发送请求,请求索取网站的 Token...
最近在某些机缘下认识了规则引擎,以华文介绍规则引擎的文章好像不多,这边试着粗浅的记下我对规则引擎的...
写出不乾净的code跟WEED一样 一开始写的时候可能会感到轻松快乐 但是後续的维护或修改会把自己搞...
「———≡」 分叉 网路上的传播是有时间误差的,也就是说如果今天 A 矿工成功挖到矿,并把挖到的区块...