正确使用jQuery.fn.doOnce()

时间:2015-09-01 10:07:06

标签: jquery performance

关于jQuery的一个优化提示是Don’t Act on Absent Elements,但是给定的样本在使用上并不十分清楚。

例如,提高

的性能
$('.elem').width(123).height(321);

如果没有elem类,以下是正确的选择吗?

$('.elem').doOnce(function(){ $(this).width(123).height(321)});

另外:这个小的可能的速度优化(当元素不存在时)是否值得为它编写额外的代码?

2 个答案:

答案 0 :(得分:-1)

这与“不要对缺席元素采取行动”有关。 Qjuery无法检测元素是否存在。 如果您设计自己的巨大插件,它具有巨大的功能或一些其他HTTP请求依赖项是值得的。 想象一下,在执行原始效果之前,您的插件需要一个配置,这将导致时间和资源的投射。最后,你永远不会因为元素已经不存在而使用它们。 希望答案找到你的好。

答案 1 :(得分:-1)

jQuery不会告诉你,如果你试图在一个空的选择上运行大量代码 - 它会继续进行,就好像没有错。由您来验证您的选择是否包含一些元素

https://learn.jquery.com/performance/dont-act-on-absent-elements/