Javascript 我应该在调用Jquery插件之前检查页面上的元素,还是调用它并允许它失败

Javascript 我应该在调用Jquery插件之前检查页面上的元素,还是调用它并允许它失败,javascript,jquery,performance,Javascript,Jquery,Performance,我最近一直在想,使用捆绑在一起的插件来利用缓存的最友好/有效的方法是什么。Are插件与HTML模块绑定,这些模块在站点中偶尔使用,并通过使用这种模式进行调用: if($('.moduleClass').length) { $('.moduleClass').modulePlugin(); } 所以我们在调用插件之前先检查模块。我一直在想这是不是最好的解决方案,或者如果浏览器找不到元素,我应该允许jQuery处理失败 $('.moduleClass').modulePlugin(); 任

我最近一直在想,使用捆绑在一起的插件来利用缓存的最友好/有效的方法是什么。Are插件与HTML模块绑定,这些模块在站点中偶尔使用,并通过使用这种模式进行调用:

if($('.moduleClass').length) {
   $('.moduleClass').modulePlugin();
}
所以我们在调用插件之前先检查模块。我一直在想这是不是最好的解决方案,或者如果浏览器找不到元素,我应该允许jQuery处理失败

$('.moduleClass').modulePlugin();
任何想法、想法和经验都会被广泛接受

谢谢


Ad

我建议不要显式地检查现有的。只需找到一个DOM元素并对其调用方法。即使元素不存在。jQuery为您处理这个问题


关于速度:在第一个示例中,您正在进行两次DOM查找,这显然比第二个示例慢。即使在第一个示例中缓存了jQuery对象,在每个示例中仍然是一个查找。

我建议不要显式地检查现有的。只需找到一个DOM元素并对其调用方法。即使元素不存在。jQuery为您处理这个问题


关于速度:在第一个示例中,您正在进行两次DOM查找,这显然比第二个示例慢。即使在第一个示例中缓存了jQuery对象,在每个示例中仍然是一个查找。

执行2个DOM查找比执行1个要慢


让jQuery来处理它,如果没有类“moduleClass”的元素,就不会有错误,什么都不应该发生。

执行2次DOM查找比执行1次要慢


让jQuery来处理它,如果没有包含“moduleClass”类的元素,就不会出现错误,什么都不会发生。

好吧,从一开始,您就已经在调用可能是空集的
.length
。jQuery允许您这样做,因为它可以正确处理不存在的元素之类的内容


现在,你的插件是否也这么做是一个完全不同的问题。尽管如此,我还是建议不要先检查。如果插件不能正确处理空集(特别是在它构建的jQuery上,能够处理),我会再次考虑使用它。

好吧,从一开始,你就已经在调用
.length
来处理可能是空集的东西了。jQuery允许您这样做,因为它可以正确处理不存在的元素之类的内容


现在,你的插件是否也这么做是一个完全不同的问题。尽管如此,我还是建议不要先检查。如果插件不能正确地处理空集(特别是因为它所基于的jQuery有空集),我会再次考虑使用它。

我了解到,如果插件很糟糕,检查它是有意义的。
但是如果插件本身通过length或each()进行检查。通过检查长度没有什么好处。

我了解到,如果插件很糟糕,那么检查它是有意义的。
但是如果插件本身通过length或each()进行检查。检查长度没有任何好处。

如果插件编码正确,则不检查没有问题。如果插件编码正确,则不检查没有问题。