gpt4 book ai didi

javascript - JQuery 选择器 - 完整扫描还是优化扫描?

转载 作者:行者123 更新时间:2023-11-30 13:25:58 25 4
gpt4 key购买 nike

代码示例:

$JK("body *").each(function() { ... });

JQuery 会在调用 each() 之前先填充元素的数组,还是有一些 LINQ 风格的优化,这样 function 就会在 DOM 树遍历期间被调用?我猜这个优化可能会(或不会)部署到 JS 引擎中。如果是这样,如何知道它是针对这个还是那个引擎/浏览器实现的?

最佳答案

它首先构建整个列表。我无法想象如何在浏览器/JavaScript 引擎中完成它,尽管我猜测可能以某种方式使 NodeList 变得惰性。

jQuery 对象看起来像一个 Array 实例(它不是,但它试图看起来像一个),这意味着您可以通过数字索引随机访问元素。让它变得懒惰是一个很好的技巧。

请注意,现代浏览器支持 DOM 访问功能,这些功能将大量工作插入浏览器的内部,所以经常 - 正如我怀疑的那样,就您的选择器而言,它实际上只是

document.getElementsByTagName('body')[0].getElementsByTagName('*')

浏览器将完整列表返回给 jQuery。这就是我提到让 NodeList 对象变得惰性的原因,但我仍然认为考虑到 JavaScript 的语义,这会非常困难。

关于javascript - JQuery 选择器 - 完整扫描还是优化扫描?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8465861/

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