一些关于javascript、jQuery运用时的建议

一些关于javascript、jQuery使用时的建议

1、在遍历数组时缓存长度
在遍历数组时应将数组的长度保存在一个变量中,不要在循环中每次都访问数组长度。

2、如果需要给DOM中添加新的元素,避免创建一个元素添加一次。应尽量只添加一次

 

frag.appendChild(newListItem) 需要修正为 frag.appendChild(${newListItem}[0]);


3、避免重复,保持代码干燥

4、当心匿名函数。

绑定匿名函数是让人头疼的,对于他们调试,修改,测试或者重用都是困难的。因此可以使用对象去组织和命名你的处理方法和回调函数

5、选择器的优化

5.1、通过ID来获取元素是最好的选择

5.2、选择器的右边要具体化,而不是左边。

如果可以尽量使tag.class出现在右边,而单独的tag或者.class出现在左边

5.3、避免选择器过度具体化

5.4、避免使用通配符选择器 。(能被匹配在任何地方的指定或隐含的选择器运行是非常慢的)

6、使用事件委托(Use Event Delegation)
事件委托允许绑定一个事件处理程序到一个容器元素上(比如,一个无序序列)替代多容器元素(比如,列表项)。
使用jQuery的$.fn.live和$.fn.delegate是易于实现事件委托的。在可能的情况下应该使用$.fn.delegate替代$.fn.live,因为$.fn.delegate省去了不必要的选择,并且当DOM上下文明确时,相对$.fn.live,使用$.fn.delegate能减少约80%的开销。

除了性能方面的好处外,事件委托会在添加新容器元素到页面时直接绑定处理程序,而无需对新添容器元素重新绑定处理程序

7、使用$.fn.detach从DOM中移除元素
操作DOM是缓慢的;你应该尽可能避免操作他们。在jQuery的1.4版本中提供$.fn.detach来解决这个问题。$.fn.detach允许从DOM中移除一个元素。

8、使用样式表改变样式,当需要改变许多元素样式时
假如你将使用$.fn.css改变超过20个元素的样式时,请考虑添加一个样式标签到页面。这样可以提升约60%的执行速度

9、使用$.data替代$.fn.data存储数据
在DOM元素上使用$.data替代在jQuery选择器上调用$.fn.data将带来可达10倍的速度提升。因为$.data是jQuery的底层方法

10、不要对不存在的元素施加操作
jQuery不会告诉你是否正在一大堆空的选择器上运行代码,他会当做没有事情是错的继续运行。因此你需要自己去核实选择器包含的一些元素

11、变量定义
多变量可被定义可以用一条语句替代几条语句

12、条件语句

13、不要把jQuery视作一个黑盒子
将jQuery源码作为你的文档 -- 保存http://bit.ly/jqsource 在你的书签里,并且经常查阅他

 

Source From:http://jqfundamentals.com/book/index.html#chapter-9