jquery学习二:jquery性能优化

1、使用最新版本的jQuery类库

2、使用合适的选择器

  (1) $("#id"):定位dom元素 提高性能最佳的方式

  建议从最近的ID元素开始往下搜索:$("#content").find("div");

  (2) $("p"),$("div"):性能也不错,它会调用本地的document.getElementsByTagName()来调用

  (3) $(".class"):对于较早版本的浏览器性能不好,它会遍历节点查找。而对于ie9后的浏览器,它会调用本地的document.getElementsByClassName();

  (4) $("[attribute=value]"):此方法性能不是太好,虽然很多现代浏览器支持querySelectorAll(),但是不同浏览器的性能不同,建议开发中尽量避免这种对性能的伤害

  (4) $(":hidden"):建议尽量不要使用

3、缓存对象

  可能经常会这样写:

  $("#id input:hidden").show();

  $("#id input:hidden").val("aa");

  这样,每执行一行代码,都会查找dom创建一个$("#id input:hidden")对象

  比较好的方式是:

  var $dom = $("#id input:hidden");//缓存变量

  $dom.show();

  $dom.val("aa");

  如果使用链式,更简洁:

  $("#id input:hidden").show().val("aa");

  记住:永远不要把相同的选择器在代码里出现多次

4、循环时的DOM操作

  循环时应尽量少的进行dom操作

  下面这个方式就不是太好:

     var top_100_list = [...];
        $ul = $("#myUl");
        for(var i = 0;i<top_100_list.length;i++){
            $ul.append("<li>"+top_100_list[i]+"</li>");
        }

  更好的方式尽量减少dom操作,这里应该将整个元素字符串在插入DOM之前全部创建好,修改代码如下:

        var top_100_list = [...];
        $ul = $("#myUl");
        var myLi = "";
        for(var i = 0;i<top_100_list.length;i++){
            myLi += "<li>"+top_100_list[i]+"</li>";
        }
        $ul.append(myLi);

5、数组方式使用jQuery对象

  jquery选择器获取的jquery对象,类似一个数组。建议使用for或者while循环获取,代码更快

  注意:jquery对象不会报错,可以使用length属性判断对象是否存在。

6、事件代理

  $("#myTable").click(function(){

    var $clicked = $(e.target);

    $clicked.css("background","red");

  });

7、将代码转化成jquery插件

  如果每次都需要花一段时间去开发类似的jquery代码,那么可以考虑将代码变成插件

8、使用join()来拼接字符串

9、合理利用html5的Data属性

10、尽量使用原生的javaScript代码

11、压缩JavaScript

时间: 2024-10-04 03:05:41

jquery学习二:jquery性能优化的相关文章

jQuery学习笔记——jQuery常规选择器

一.简单选择器在使用 jQuery 选择器时,我们首先必须使用“$()”函数来包装我们的 CSS 规则.而CSS 规则作为参数传递到 jQuery 对象内部后,再返回包含页面中对应元素的 jQuery 对象.随后,我们就可以对这个获取到的 DOM 节点进行行为操作了.#box {//使用 ID 选择器的 CSS 规则color:red;//将 ID 为 box 的元素字体颜色变红}在 jQuery 选择器里,我们使用如下的方式获取同样的结果:$('#box').css('color', 'red

jQuery学习笔记——jQuery基础核心

代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起始的.而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写: $(function () {}); //执行一个匿名函数 $(‘#box’);//进行执行的ID元素选择 $(‘#box’).css(‘color’, ‘red’);//执行功能函数由于$本身就是jQuery对象的缩写形式,那么也就是说上面的三段代码也可以写成如下形式:jQ

Android开发学习之路--性能优化之常用工具

??android性能优化相关的开发工具有很多很多种,这里对如下六个工具做个简单的使用介绍,主要有Android开发者选项,分析具体耗时的Trace view,布局复杂度工具Hierarchy View,应用启动时间,Memory.CPU.Network分析,静态代码检查工具Lint以及程序稳定性monkey.下面就开始学习下这些工具吧. 一.Android开发者选项 ??Andorid开发工具众多,首先就是手机自带的开发者选项了,至于手机怎么启动开发者选项,那么请自行百度或者google了,接

jQuery学习-w3cschool-(1)jQuery 教程

一.jQuery 简介 (1)???使用 Google 的 CDN引入jQuery库: <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs /jquery/1.4.0/jquery.min.js"></script> </head> (2)???使用 Microsoft 的 CDN引入jQuery库: <h

jQuery学习之jQuery Ajax用法详解

[导读] jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍.我们先从最简单的方法看起,处理复杂的ajax请求时,jQuery使用jQue jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍. 我们先从最简单的方法看起,处理复杂的ajax请求时,jQuer

jQuery学习之jQuery Ajax用法详解(转)

[导读] jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍.我们先从最简单的方法看起,处理复杂的ajax请求时,jQuery使用jQue jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍. 我们先从最简单的方法看起,处理复杂的ajax请求时,jQuer

jquery学习笔记-jQuery实现单击和鼠标感应事件

对于单击事件而言,jQuery同样提供了动态交替的toggle()方法,这个方法接受两个参数,两个参数均为监听函数,在click事件中交替使用. 例子:点击事件的动态交互. <script type="text/javascript"> $(function() { $("#ddd").toggle( function(oEvent) { $(oEvent.target).css("opacity", "0.5")

JQuery学习笔记---jquery对象和DOM对象的关系

1.DOM(Document  Object Model,文档对象模型).DOM树 { html (head&&body),  head(meta && title) , body( h,p,ui),  ul(li...) } 2.Jquery对象:JQuery对象就是通过jquery包装DOM对象后产生的对象,JQuery对象是jquery独有的. 3.JQuery对象和DOM对象的相互转换. 声明变量的风格,DOM变量  .如:var variable=DOM对象: J

jquery学习笔记-jQuery操纵DOM元素属性 attr()和removeAtrr()方法

jQuery中操纵元素属性的方法: attr(): 读或者写匹配元素的属性值. removeAttr(): 从匹配的元素中移除指定的属性. attr()方法 读操作 attr()读操作. 读取的是匹配元素中第一个元素的指定属性值. 格式: .attr(attributeName),返回值类型:String.读取不存在的属性会返回undefined. 注意选择器的选择结果可能是一个集合,这里仅仅获取的是集合中第一个元素的该属性值. 看例子: <!DOCTYPE html> <html>