zoukankan      html  css  js  c++  java
  • jQuery 性能优化技巧

    原文地址:jQuery 性能优化技巧
    博客地址:http://www.extlight.com

    一、使用最新版本 jQuery 类库

    二、合理使用选择器

    # 推荐使用
    $("#id") 
    
    # 可以使用
    $("p"),$("span") 
    
    # 可以使用
    $(".class") 
    
    # 尽量避免
    $("[attribute=value]")  
    
    # 尽量避免
    $(":hidden") 
    
    

    三、使用缓存对象

    场景:修改某个按钮的文本和颜色

    # 不好的写法
    
    $("#btn").text("重置");
    
    $("#btn").css("color","red");
    
    
    # 优化的写法
    
    var $btn = $("#btn");
    
    $btn.text("重置").css("color","red");
    

    四、循环时减少对DOM的操作

    场景:往 <ul> 中添加 <li> 菜单项

    # 不好的写法
    
    var $ul = $("#menu");
    
    for(var i=0; i<6; i++) {
        $ul.append("<li>菜单"+i+"</li>")
    }
    
    
    # 优化的写法
    
    var $ul = $("#menu");
    var html = "";
    
    for(var i=0; i<6; i++) {
        html += "<li>菜单"+i+"</li>";
    }
    
    $ul.append(html);
    
    

    五、使用事件代理

    场景:给 <ul> 里的所有 <li> 绑定点击变色事件

    # 不好的写法
    
    $("ul li").on("click",function() {
       $(this).css("color","red"); 
    });
    
    # 优化的写法
    
    $("ul li").on("click",function(e) {
       var $obj = $(e.target);
       $obj.css("color","red"); 
    });
    
    

    六、将代码转成 jQuery 插件

    七、使用 join() 拼接字符串

    第四点的案例中,代码还可以进行优化

    var $ul = $("#menu");
    var arr = [];
    
    for(var i=0; i<6; i++) {
       arr.push("<li>菜单"+i+"</li>");
    }
    
    $ul.append(arr.join("");
    
    

    八、合理利用 HTML5 的 data 属性

    使用 data-* 属性来嵌入自定义数据。

    <div id="user" data-age="26" data-gender="男">张三</div>
    
    
    
        var user = $("#user");
    
        var age = user.data("age");
        var gender = $("#user").data("gender");
    

    九、尽量使用原生的 JS 方法

    第五点的案例中,可以如下优化

    $("ul li").on("click",function(e) {
       var $obj = $(e.target);
       $obj.get(0).style.color = "red";
    });
    

    十、压缩 JS 代码

    如有更多优化技巧,后续补充......

  • 相关阅读:
    基于ZooKeeper和Thrift构建动态RPC调用
    菜鸡的Java笔记 api 文档
    菜鸡的Java笔记 第二十四
    菜鸡的Java笔记 第二十三
    菜鸡的Java笔记 第二十二
    菜鸡的Java笔记 实践
    Python 函数 参数传递
    python 函数的定义及调用语法,map 方法,函数嵌套递归
    java关键字
    菜鸡的Java笔记 第二十一 final 关键字
  • 原文地址:https://www.cnblogs.com/moonlightL/p/7595261.html
Copyright © 2011-2022 走看看