核心提示:第十一章 jQuery的性能优化和技巧1、使用id定位DOM是最佳提高性能的方式,将id与find相结合;2、使用类定位性能不佳,使用属性选择器([attribute=value])、伪选择器((:s...
       第十一章 jQuery的性能优化和技巧
1、使用id定位DOM是最佳提高性能的方式,将id与find相结合;
2、使用类定位性能不佳,使用属性选择器
3、将重复使用的选择器对象缓存到变量中调用,如果多个对象使用同一个缓存对象,将此对象缓存到全局对象中:
$(function(){
    var my={
        title:$("head"),
        changeColorID:$("#id")
    }
    $("#btn").click(funciton(){
        my.title.csss("background","red")
    })
});
4、减少循环中对DOM的操作次数,在向DOM插入字符串的循环时,现将字符串通过循环拼接好,然后一次性插入DOM中;
5、从性能角度考虑,用for或while循环代替.each();
6、使用length检查jq对象是否存在,因为$(“”)对象永远都是ture;
7、$(“ul li”).click(),如果li由100个子元素的li,那么久绑定了100个事件,为了优化性能,应该将事件绑定到父元素,通过时间冒泡和e.target捕捉触发的目标元素,下面的两种方式都是可行的:
$("ul").click(function(e){
    var $a= $(e.target);//e.target捕捉触发事件的元素
    //对触发事件的元素操作
})
$("ul").on(click,"li",function(){
    //对li操作
})
8、将常用的函数封装成插件:
//使用$.extend封装全局函数
(function($){
    $.extend({
        functionA:function(value){
            //编写函数A
        }
        functionB:function(value){
            //编写函数B
        }
    })
})(jQuery)
//使用$.fn.extend封装对象方法
(function($){
    $.fn.extend({
        "color":function(value){
            //编写代码
            return this//返回this,使方法可链
        }
    })
})(jQuery)
9、在小数据量的字符串接连操作时,”+=”和”array.join”的性能相差无几,在操作大数据量的字符串连接时(>= 10000),使用”array.join”的性能优势遍体现出来了。



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                