Jos*_*off 8 html javascript dom
我对DOM节点感到有点困惑,主要是条款.
以前我认为DOM是我在检查员中看到的,仅此而已.现在我知道一些函数,例如document.createElement()创建将我的文档作为"上下文"的DOM节点,但没有将文档作为"父".是否document.createElement()创建"DOM节点"?
这个词不是用词不当吗?根据我的理解,"节点"与"DOM节点"或"HTML元素"同义.当节点是DOM中的东西时,调用"DOM节点之外"的东西是不是很难命名?这个词似乎是自相矛盾的.
为了进一步增加混淆,有一些新概念,如保留路径,分离的DOM节点,挂起DOM节点,影子DOM,文档片段等.
这些术语中的哪一个是同义词?哪些是用词不当?这些是实际规格(链接到规格的奖金).
并不是"出于DOM节点"这个词用词不当吗?
首先,在讨论关于HTML的"DOM"时,它指的是HTML DOM.节点可以存在于HTML DOM中.一个节点(在我们现在谈论的意义上)只是CAN构成或成为DOM的一部分的最小的自包含部分.
因此,它可以存在于任何地方并且仍然是节点.如果发动机与汽车分离,它仍然是发动机.它只是放在"正确"的地方才有用.
根据我的理解,"节点"与"DOM节点"或"HTML元素"同义.
可以将节点添加到HTML DOM中,它可以是HTML元素,但不一定是这样.在HTML中,文本节点也是一个节点.并且节点可以存在于HTML文档或XML文档或RSS文档中或...
或者它可以是一个HTML元素的节点,但存在于HTML DOM之外,例如仅存储在内存中.动态创建节点时的情况如何.
当节点是DOM中的东西时,调用"DOM节点之外"的东西是不是很难命名?这个词似乎是自相矛盾的.
根据以上所述,不,不是.引擎仍然是引擎,节点仍然是节点.
为了进一步增加混淆,有一些新概念,如保留路径
"保留路径"与DOM无关,而是与JavaScript无关.这意味着只要在任何地方仍然存在对变量/对象的引用,该对象就不会被垃圾回收.一旦"使用"对象的所有方法/函数/ DOM元素被垃圾收集,对象也是如此.
它基本上只是关于垃圾收集/内存泄漏.它只涉及DOM,因为DOM中的所有东西都被"使用"并且应该被保留.
分离的DOM节点,挂起DOM节点
"出于DOM节点"和"分离的DOM节点"将是相同的事情,我猜测"悬挂DOM节点"虽然我从来没有听说过使用过它.它们似乎都暗示已从DOM中删除但仍通过JavaScript保留在内存中的节点.
这些概念并不新鲜,JavaScript已经花了很长时间.如果它们看起来很新,那是因为人们更多地谈论它们.
shadow DOM,文档片段等
这些在HTML DOM规范中有明确规定.一个快速的答案是Shadow DOM再次是一个JavaScript的东西,它是关于为您的元素提供受保护的范围以及将内容与渲染分离.似乎令人困惑?那是因为这本身就是一个全新的问题,你真的应该阅读它.
一些链接可以帮助您入门:
http://www.w3.org/DOM/
http://www.w3.org/TR/dom/
http://w3c.github.io/webcomponents/spec/shadow/
http://www.w3.组织/ TR/2014/REC-html5-20141028 /
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |