gpt4 book ai didi

dom - NodeList是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 10:47:53 26 4
gpt4 key购买 nike

DOM NodeList(例如由 element.getElementsByTagName 返回)是一个有趣的对象,因为它不是快照,而是反射(reflect)了创建 NodeList 后对文档所做的更改。

我想知道如何实现这样一个集合:完全惰性求值一定会非常慢,但保持缓存版本的一致性需要在内部进行大量簿记。

我尝试用谷歌搜索有关该主题的博客文章,也尝试查找 Mozilla 的相关源代码文件,但无法立即找到任何内容(当我无法立即找到某些内容时,我就来到这里...)。

那么 Firefox、Safari、Internet Explorer(和其他非浏览器 DOM 实现)如何处理 NodeList?

最佳答案

对于.NET的XML库,XmlNodeList有3个内部子类,具有不同的策略。对于 XmlNode.ChildNodes 属性,XmlChildNodes 集合使用基于对其包含元素的引用的简单惰性计算。当 DOM 更改时,XmlElementList 使用事件监听器。第三个,XPathNodelList,用于 XPath 查询(例如,XmlNode.SelectNodes()),并在每次访问其索引、读取其 Count 属性或迭代时评估 XPath。

关于dom - NodeList是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/300794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com