Inefficient jQuery usage warnings in PHPStorm IDE

后端 未结 3 1804
孤城傲影
孤城傲影 2020-12-07 23:43

I recently upgraded my version of PHPStorm IDE and it now warns me about inefficient jQuery usage.

For example:

var property_single_location = $(\"#p         


        
相关标签:
3条回答
  • 2020-12-08 00:16

    I believe the difference between the two methods when using recent versions of jQuery and browsers is negligible. I constructed a test that shows that it is now actually 10% faster to do a combined selector rather than selection on id and then find for a very simple case:

    http://jsperf.com/jquery-find-vs-insel

    For selection of multiple children by class at any depth, the "find" does appear to be faster:

    http://jsperf.com/jquery-find-vs-insel/7

    There was some discussion about this on jQuery forums, but its 3 years old: https://forum.jquery.com/topic/which-jquery-selection-is-efficient As they point out here, if you are doing a lot of operations on same id selector, the greatest performance improvement is found by caching the top level element. On the other hand if you are doing just a few selections, there is going to be virtually no performance difference.

    Therefor I believe that IntelliJ is overstating the importance of this code style.

    0 讨论(0)
  • 2020-12-08 00:24

    The first question is to hit Alt+Enter, and select the first tip in the list, then hit Enter, you'll see what it thinks the most efficient way.

    0 讨论(0)
  • 2020-12-08 00:39

    I had the same question today and was able to find a solution thanks to Scott Kosman here.

    Basically the answer is to select IDs individually and then use .find(...) for anything below. So taking your example:

    $("#property [data-role='content'] .container");
    

    Changing it to this makes PhpStorm happy and can evidently be more than twice as fast:

    $("#property").find("[data-role='content'] .container");
    
    0 讨论(0)
提交回复
热议问题