Javascript 由于缓存原因对不存在的元素调用Jquery的开销
如果JQuery调用不存在的元素,那么开销是多少?它不会抛出错误,但是除了加载脚本之外,还有很多cpu开销吗?这样做是为了类还是id重要吗 出于缓存的原因和保持同步连接最少的原因,我将每个页面的所有onload脚本都保存在一个文件中,但我想知道是否可以有效地告诉我的javascript它在哪个页面上,并通过if语句或switch语句只加载实际在该页面上运行的代码位。我不想把它们放在单独的文件中,因为我希望在初次访问之后,每个页面都能从缓存中加载尽可能多的内容 例如,您在主页上,但该文件或onload中包含产品页面javascriptJavascript 由于缓存原因对不存在的元素调用Jquery的开销,javascript,jquery,html,Javascript,Jquery,Html,如果JQuery调用不存在的元素,那么开销是多少?它不会抛出错误,但是除了加载脚本之外,还有很多cpu开销吗?这样做是为了类还是id重要吗 出于缓存的原因和保持同步连接最少的原因,我将每个页面的所有onload脚本都保存在一个文件中,但我想知道是否可以有效地告诉我的javascript它在哪个页面上,并通过if语句或switch语句只加载实际在该页面上运行的代码位。我不想把它们放在单独的文件中,因为我希望在初次访问之后,每个页面都能从缓存中加载尽可能多的内容 例如,您在主页上,但该文件或onlo
$('#product_options').hover(function(){},function(){});
但是产品选项在此页面上不存在,因为它是主页
这对诸如
$('.addtocart').click(function(){})
需要注意的是,这不会在JQuery中引发任何错误。JQuery有一个特殊的“快速”路径来处理单个id选择器,例如#product_options
;所有其他选择器的处理方式都要复杂得多。如果您继续使用id选择器,则性能影响将无法测量
如果你使用其他选择器,那么对性能的影响会相对更大,但从绝对意义上讲,它不太可能产生太大的影响,除非我们讨论的是几十个选择器
然而,您可以将代码放入函数中,然后从每个页面只调用相关的函数,从而避开所有这些问题。每一页都写不多
<script type="text/javascript">
$(function() {
doSomething();
doSomethingElse();
});
</script>
$(函数(){
doSomething();
doSomethingElse();
});
我认为这是一个很好的平衡,既不将代码分散在多个文件中,同时也不尝试运行死代码。jQuery有一个特殊的“快速”路径来处理单个id选择器,例如#product_options
;所有其他选择器的处理方式都要复杂得多。如果您继续使用id选择器,则性能影响将无法测量
如果你使用其他选择器,那么对性能的影响会相对更大,但从绝对意义上讲,它不太可能产生太大的影响,除非我们讨论的是几十个选择器
然而,您可以将代码放入函数中,然后从每个页面只调用相关的函数,从而避开所有这些问题。每一页都写不多
<script type="text/javascript">
$(function() {
doSomething();
doSomethingElse();
});
</script>
$(函数(){
doSomething();
doSomethingElse();
});
这是一个很好的平衡,既不将代码分散在多个文件中,同时也不尝试运行死掉的代码。这会影响性能,因为即使要确定没有匹配项,也必须进行工作。现在,一般来说,这是一个非常小的问题,你可能不必担心,除非你有一个巨大的非常令人兴奋的Javascript web应用程序——想想Facebook。也就是说,只运行应该在页面上运行的代码仍然是一种好的做法,我发现最好的方法是Paul Irish的方法。性能会受到影响,这仅仅是因为即使要确定没有匹配项,也要做一些工作。现在,一般来说,这是一个非常小的问题,你可能不必担心,除非你有一个巨大的非常令人兴奋的Javascript web应用程序——想想Facebook。也就是说,只运行应该在页面上运行的代码仍然是一种好的实践,我发现最好的方法是Paul Irish的方法