过滤器与已加载数据的查找之间的jQuery性能测试

时间:2014-11-07 07:54:57

标签: javascript jquery performance jquery-filter

我已经知道' jquery.find'从当前选择器中搜索嵌套元素。但是' jQuery.filter'只通过已存在的数据。从我的猜测过滤器会更快,但我看到很少的性能测试,发现更好。不管哪种方式应该更好,有人可以帮我解决这个问题吗?

我们说我有这个插件: 通过元素搜索的方式会更快。

 $.plugIn = {

    $appForm: $("form.app-editing-page"), // means both editing and posting
    $appFormEdit: $("form.app-edit"),
    $appFormPost: $("form.app-post"),
    $allInputs: $("form.app-post input"),
    checkPerform: function(){
        var visibleInputs = $.plugIn.$appForm.find("input:visible"); // way 1 with find
        var visibleInputs2 = $.plugIn.$allInputs.filter(":visible"); // way 2 with filter from cached
    }

 }

在我看来,过滤器应该更快,因为它只从缓存的项目看起来。但任何人都可以帮助解决这个问题,了解性能。

另一件事是,它是声明插件和变量的正确方法;

1 个答案:

答案 0 :(得分:1)

 $.plugIn = {

   $appForm: [], //$("form.app-editing-page"), // means both editing and posting
   $appFormEdit: [], //$("form.app-edit"),
   $appFormPost: [], //$("form.app-post"),
   $allInputs: [], //$("form.app-post input"),
   checkPerform: function() {
     $.plugIn.$appForm = $(".app-editing-page"); // faster than "form.class"
     $.plugIn.$appForm = $(".app-post");
     $.plugIn.$allInputs = $.plugIn.$appForm.find("input"); // a lot more faster than complex queries.

     var visibleInputs = $.plugIn.$allInputs.filter(":visible"); // faster way
   }

 }