有哪些提高jQuery性能的快速提示?

有哪些提高jQuery性能的快速提示?

  1. 首选仅通过ID进行简单选择,然后仅通过标签名称进行简单选择。 通过类名或CSS选择器进行选择需要jQuery来遍历DOM,而ID和标记映射到“本机”浏览器DOM函数(getElementById和getElementByTagName)。
  2. 尽可能地缓存 jQuery对象。
  3. 将操作范围限定为根jQuery对象。 不是单独选择元素,而是选择一个共同的祖先元素,并使用find函数查找该元素子元素范围内的元素。 如果你正在对共同的祖先进行一些操作,这实际上只是最佳的; 否则,查找祖先和缓存它的开销可能超过范围遍历的好处。
  4. 不要使用$.each()而是for(;;) 。 它的速度提高了十倍以上。

Paul Irish最近在2009年jQuery大会上做了关于表现的演讲。这些幻灯片是我见过的最全面的幻灯片。

http://paulirish.com/perf/
http://www.slideshare.net/paul.irish/perfcompression

谷歌CDN上的参考文件,因此加载速度更快。

而不是做:

 $("#foo").addClass('test'); $("#foo").removeClass("bar"); $("#foo").slideUp('slow'); 

你可以做:

 $("#foo").addClass('test').removeClass('bar').slideUp('slow'); 

它总是适用于常见的javascript:始终缓存,缓存,缓存,例如:

 var $this = $(this); $this.css('width', parseInt($this.css('width')) + 20 + 'px'); 

实际上不可能提高jQuery的速度,它实际上取决于代码的效率,浏览器的JS解释器的效率以及运行代码的计算机的速度。 您可以尝试重写jQuery以提高效率,但这需要时间,而且很可能已经非常优化。

确保效率的最佳方法之一是确保*选择器尽可能具体地针对元素/类等。

* $(选择)

我认为你要求代码优化,但由于性能高度依赖于使用的JavaScript-Engine,我想提一下Google Chrome Frame 。

知道何时使用纯JavaScript而不是JQuery方法。

jQuery是JS + DOM的补充,不是它的完全替代品。 您不必为您编写的每行代码使用jQuery。 没有它,有些东西会更简洁地表达出来; 没有它,很多事情都会更快。 了解DOM提供的内容,这样您就不会编写我在此处发布的一些较为简单的示例。

例如。:

 var ix= $('#'+selectname).children().index($('#'+selectname+' option:selected')); 

更快,更容易阅读,不会破坏ID中的意外字符:

 var ix= document.getElementById(selectname).selectedIndex;