Does jQuery do any kind of caching of “selectors”?

后端 未结 14 2032
挽巷
挽巷 2020-11-27 18:14

For example, will the first piece of code perform a full search twice, or is it smart enough to cache results if no DOM changes have occurred?

if ($(\"#navba         


        
相关标签:
14条回答
  • 2020-11-27 19:03

    jQuery Sizzle does automatically cache the recent functions that have been created from the selectors in order to find DOM elements. However the elements themselves are not cached.

    Additionally, Sizzle maintains a cache of the most recently compiled functions. The cache has a maximum size (which can be adjusted but has a default) so you don’t get out-of-memory errors when using a lot of different selectors.

    0 讨论(0)
  • 2020-11-27 19:04

    jsPerf is down today, but this article suggests that the performance gains from caching jQuery selectors would be minimal.

    enter image description here

    This may simply be down to browser caching. The selector tested was only a single id. More tests should be done for more complicated selectors and different page structures...

    0 讨论(0)
提交回复
热议问题