几种提高jQuery性能的代码

1、jQuery对象缓存

如果同一元素被查找多次时,就应该将该jQuery对象缓存起来,不然每次查找都要遍历整个文档。

使用下边的代码做个简单的测试

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
</head>
  <body>
    <div class="no"></div>
  <div class="yes"></div>
  </body>
<script type="text/javascript">
$(function(){
    console.time(‘noSaved‘);
    for (i = 0; i < 1000; i++) {
        $(‘.no‘).text(i + ‘ ‘);
    }
    console.timeEnd(‘noSaved‘);

    console.time(‘saved‘);
    var the = $(‘.yes‘);
    for (i = 0; i < 1000; i++) {
        the.text(i + ‘ ‘);
    }
    console.timeEnd(‘saved‘);
});
</script>
</html>

用Chrome浏览器按F12打开控制台查看结果:(注:console.time在Chrome和Firefox浏览器好用,IE不行)

性能还是差很多的~

 

2、根据一个数组快速拼一个字符串

假如我们有如下这样的一个数组

var arr=[‘CBA‘,‘WCBA‘,‘NBA‘,‘WNBA‘];

最原始的办法(我就是这么写的,以后改进)

var list = ‘<ul>‘;
for (var i = 0; i < arr.length; i++) {
    list += ‘<li>‘ + arr[i] + ‘</li>‘;
}
list += ‘</ul>‘;

用jQuery的$.each来遍历

var list = ‘<ul>‘;
$.each(arr, function (i, n) {
    list += ‘<li>‘ + arr[i] + ‘</li>‘;
});
list += ‘</ul>‘;

最后用join的方法

var list = ‘<ul><li>‘ + arr.join(‘</li><li>‘) + ‘</li></ul>‘;

上面三种写法输出的结果都是一样的,但最后一种写法从代码量上还是比较占优势。而且经过测试第二种写法和第三种写法,在数组中的数据非常多的情况下,第三种写法的速度要快50%以上,但数据少的情况下速度没有分区。

3、正整使用on给元素绑定事件

我要给如下代码的表格单元格绑定一个单击事件

<table id="t">
    <tr>
        <td>单元格</td>
    </tr>
</table>

一般随手会写成下边的样子

$("td").on("click",function(){
    alert("我是单元格");
})

如果只有一个td这么写没问题,要是有100个td的话那这么写的性能就非常的差,比较好的写法如下

$(‘#t‘).on(‘click‘, ‘td‘, function () {
    alert("我是单元格");
});

经测试在有100个td的情况下两者性能相差7倍之多。

几种提高jQuery性能的代码

时间: 2024-11-29 09:22:20

几种提高jQuery性能的代码的相关文章

提高jQuery性能的十个诀窍

转自: http://www.jb51.net/article/43198.htm 1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQuery选择语句: $(‘.elem') $(‘.elem', context) context.find(‘.elem') 我们用1.4.2.1.4.4.1.6.2三个版本的jQuery测试,看看浏览器在1秒内能

如何提高jQuery的性能

缓存变量DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // 建议 $element = $('#element'); h = $element.height(); $element.css('height',h-20); 避免全局变量jQuery与javascript一样,一般来说,最好确保你的变量在函数作用域内. // 糟糕 $element = $('#

26种提高ASP.NET网站访问性能的优化方法 .

1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求. 连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完

OutputCache缓存优化asp.net代码 提高网页性能

对于asp.net编写的网页来说,使用缓存是一种非常重要也是很常用的优化技术,它可以大大减轻服务器的负载压力,优化这些网页的性能,在网与使用 .NET Framework 的任何其他功能相比,适当地使用缓存可以更好地提高站点的性能.同时,在网页加速显示上也起了很大的作用. OutputCache以声明的方式控制 ASP.NET 页或页中包含的用户控件的输出缓存策略. 语法: <%@ OutputCache Duration="#ofseconds"   Location=&quo

如何书写高质量jQuery代码(使用jquery性能问题)

1.正确引用jQuery 1.尽量在body结束前才引入jQuery,而不是在head中.2.借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件.(对于已经使用了cdn的网站可以忽略,现在用户带宽都升级了,这个可以忽略了,放别人机器不一定稳定)3.如果在</body>前引入script文件的话,就不用写document.ready了,因为这时执行js代码时DOM已经加载完毕了. ? 1 2 3 4 <body>  <s

提高jQuery的性能

缓存变量DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // 建议 $element = $('#element'); h = $element.height(); $element.css('height',h-20); 避免全局变量jQuery与javascript一样,一般来说,最好确保你的变量在函数作用域内. // 糟糕 $element = $('#

看别人写的优秀代码,是对自己的一种提高,看别人写的很恶心的代码,对自己也是一种提高:告诉自己不要这样写(转)

这两天,我做了两件事: 1.重构了系统某个模块的部分代码: 花了一天时间,一个6k多行的java文件,搞到4k行加若干个类文件,恕我能力有限,后面的实在重构不下去了,那是一种3个domain属性名几乎一样100多个字段但是却用同一个copy了三遍的方法来处理的欲哭无泪,那是一种使劲滚鼠标滚轮都滚不到一个方法尾部的绝望(100多个字段的几个类属性equals来,equals去,get来,set去的,这样类型的方法有那么五六个,你说能不多吗)...... 2.做了一个日志处理的小工具: 客户要求把日

简单十招提高jQuery执行效率

1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQuery选择语句: $('.elem') $('.elem', context) context.find('.elem') 我们用1.4.2.1.4.4.1.6.2三个版本的jQuery测试,看看浏览器在1秒内能够执行多少次.结果如下: 可以看到,1.6.2版本的运行次数,远远超过两个老版本.尤

提高jQuery执行效率需要注意几点

1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQuery选择语句: $('.elem') $('.elem', context) context.find('.elem') 我们用1.4.2.1.4.4.1.6.2三个版本的jQuery测试,看看浏览器在1秒内能够执行多少次.结果如下: 可以看到,1.6.2版本的运行次数,远远超过两个老版本.尤