gpt4 book ai didi

javascript - 出于缓存原因在不存在的元素上调用 Jquery 的开销

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

如果 JQuery 调用不存在的元素,那么开销是多少?它没有抛出任何错误,但是除了加载脚本之外还有很多 cpu 开销吗?这是为类还是为 id 完成的重要吗?

出于缓存的原因和将同时连接保持在最低限度的原因,我将每个页面的所有 onload 脚本都保存在一个文件中,但我想知道告诉我的 javascript 它在哪个页面上并加载是否有效只有通过 if 语句或 switch 语句在该页面上实际运行的代码位。我不想将它们放在单独的文件中,因为我希望每个页面在初次访问后尽可能多地从缓存中加载。

例如,您在主页上,但该文件或加载中包含产品页面 javascript。

$('#product_options').hover(function(){},function(){});

但是product_options在这个页面上不存在,因为它是主页。

它对类有影响吗

$('.addtocart').click(function(){})

应该注意,这不会在 JQuery 中引发任何错误。

最佳答案

jQuery 有一个特殊的“快速”路径来处理单个 id 选择器,例如 #product_options;所有其他选择器的处理方式都更加复杂。如果您继续使用 ID 选择器,性能影响将无法衡量。

如果您使用其他选择器,那么对性能的影响会相对更大除非我们谈论的是数十个选择器,否则绝对不会产生太大影响。

但是,您可以通过将您的代码放在函数中然后从每个页面仅调用那些相关的函数来避开所有这些。每页都写不过分

<script type="text/javascript">
$(function() {
doSomething();
doSomethingElse();
});
</script>

恕我直言,这是一个很好的平衡,既不会将代码分散到多个文件中,又不会尝试运行死代码。

关于javascript - 出于缓存原因在不存在的元素上调用 Jquery 的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786314/

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