`
songlei8090
  • 浏览: 37753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

网页使用jquery优化

    博客分类:
  • JS
 
阅读更多

jQuery现在已经非常流行,百度新首页中也已经开始使用jQuery,今天总结下怎么书写更好的jQuery代码使jQuery代码更好、更快的执行,希望本篇jQuery教程一改大家以前不合理的做法。

1.正确引用jQuery

尽量在body结束前才引入jQuery,而不是在head中(解释:因为jquery文件比较大,script标签是阻塞加载)
借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件。
如果在</body>前引入script文件的话,就不用写document.ready了,因为这时执行js代码时DOM已经加载完毕了。

<body>  
    <script src="http://lib.sinaapp.com/js/jquery11/1.8/jquery.min.js"></script>  
    <script>window.jQuery || document.write('<script src="jquery1.8.min.js">\x3C/script>')</script>
</body>

 2.优化jQuery选择器
高效正确的使用jQuery选择器是熟练使用jQuery的基础,而掌握jQuery选择器需要一定的时间积累,我们开始学习jQuery时就应该注意选择器的使用。

<div id="nav" class="nav">  
    <a class="home" href="http://www.webkfa.com">web开发</a>  
    <a class="articles" href="http://www.webkfa.com/">web开发</a>  
</div>

 如果我们选择class为home的a元素时,可以使用下边代码:

$('.home');  //1  
$('#nav a.home');  //2  
$('#nav').find('a.home');  //3  

 方法1会使jQuery在整个DOM中查找class为home的a元素,性能可想而知。
方法2为要查找的元素添加了上下文,在这里变为查找id为nav的子元素,查找性能得到了很大提升。
方法3使用了find方法,它的速度更快,所以方法三最好。
关于jQuery选择器的性能优先级,ID选择器快于元素选择器,元素选择器快于class选择器。因为ID选择器和元素选择器是原生的JavaScript操作,而类选择器不是,大家顺便可以看下find context 区别,find() children区别。
3.缓存jQuery对象

缓存jQuery对象可以减少不必要的DOM查找,关于这点大家可以参考下缓存jQuery对象来提高性能。
4.正确使用事件委托

事件委托可以使事件更好的执行,在动态添加的元素上绑定事件也需要委托来实现,在新版本的jQuery中推荐大家使用on来给元素绑定一个或多个事件的处理函数。

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

 比如我们要在上边的单元格上绑定一个单击事件,不注意的朋友可能随手写成下边的样子:

$('#t').find('td').on('click', function () {  
    $(this).css({ 'color': 'red', 'background': 'yellow' });  
}); 

 5.精简jQuery代码

如在上述代码中我们对jQuery代码进行了适当的合并,类似的还有.attr()方法等,我们没有写成下边的方式:

$('#t').on('click', 'td', function () {  
    $(this).css('color', 'red').css('background', 'yellow');  
});  

 6.减少DOM操作
刚开始使用jQuery时可能会频繁的操作DOM,这是相当耗费性能的。如我们要在body中动态输出一个表格,一些朋友会这样写:

var $t = $('body');  
$t.append('<table>');  
$t.append('<tr><td>1</td></tr>');  
$t.append('</table>');  

  好的做法:

$('body').append('<table><tr><td>1</td></tr></table>');  

 这样在拼接完table串后再添加到body中,对DOM的操作只需一次。群里以前有朋友就因为这个导致在IE下输出时出现问题,而关于字符串的拼接可以参考下最快创建字符串的方法。
7.不使用jQuery
原生函数总是最快的,这点不难理解,在代码书写中我们不应该忘记原生JS。
就先总结这几条吧,每条建议并不难理解,但总结全面的话还是要花费不少时间的。如在减少代码段中,如果需要根据条件从数组中得到新数组时,可以使用$.grep() 方法,如果你在使用jQuery时有自己心得的话,欢迎在留言中和大家分享!

分享到:
评论

相关推荐

    JQuery权威指南源代码

    使用jQuery选择器实现隔行变色 JavaScript代码检测页面元素 jQuery代码检测页面元素 使用jQuery基本选择器 使用jQuery层次选择器 使用jQuery基本过滤选择器 使用jQuery内容过滤选择器 使用jQuery可见性过滤...

    jquery 最新版框架下载(1.32-1.8.3)

    jQuery能快速,简洁的使用HTML documents, handle events, perform animations,并且能把Ajax交互应用到网页,jQuery能够改变你书写JavaScript的方式. jQuery团队发布了jQuery 1.8.2版本。 该版本主要修复之前两个...

    应用jQuery技术优化传统JavaScript代码制作网页块元素悬停功能.pdf

    应用jQuery技术优化传统JavaScript代码制作网页块元素悬停功能.pdf

    超实用的jQuery代码段

    《超实用的jQuery代码段》的代码跨平台、跨设备、跨浏览器,充分向读者演示了如何使用jQuery的各项技术,实现令人激动的网页效果。   《超实用的jQuery代码段》从jQuery框架的使用原理与应用场景出发,对最实用的...

    jQuery权威指南-源代码

    其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...

    精通javascript+jQuery

    主要内容包括JavaScript的概念和基本语法、CSS基础、CSS排版、DOM模型框架、网页中的事件、表格表单、JavaScript的调试与优化、Ajax异步技术等。在此基础之上又通过精彩的实例详细讲解了jQuery的相关技术:主要包括...

    jQuery制作网页表格数据优化插件.rar

    非常实用的特效代码,可以完美运行,可以二次修改!

    jQuery全能权威指南

    为开发和设计网页提供一个真正快速的、全能的权威指南,包括实用方法、注意事项、优化体验、实战案例、内核剖析、业界经典。另外,《jQuery全能权威指南:jQuery Core+jQuery Plugin+jQuery UI+jQuery Mobile》附带有...

    jQuery代码优化方法总结

    在jQuery中,可以用多种选择器,选择同一个网页元素。每种选择器的性能是不一样的,应该了解它们的性能差异 1、最快的选择器:id选择器和元素标签选择器 举例来说,下面的语句性能最佳: $('#id') $('form') $('...

    jquery实现俄罗斯方块

    通过jquery 实现俄罗斯方块,提供:变换预告,方块颜色随机变换.游戏积分累积,升级等功能. 代码仍有很大的优化空间.请高手优化.

    jQuery代码性能优化的10种方法

    之前,我们减少字节数和请求次数以及加载顺序以使页面加载的更快。如今,我们越来越多的注意到...使用 jQuery和其他JavaScript框架,使节点选择和DOM操作变得越来越容易,如果使用不当,有可能影响整个网页的响应速度。

    精通JavaScript.jQuery.rar

    《精通JavaScript+jQuery(1CD)》从介绍JavaScript的基础知识开始,围绕标准Web的各项技术予以展开,通过大量实例对JavaScript、CSS、DOM、Ajax等Web关键技术进行深入浅出的分析,主要内容包括JavaScript的概念和基本...

    jQuery性能优化28条建议你值得借鉴

    jQuery性能优化28条建议 一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些。找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来。我也做了一个jQuery性能优化的简明...

    jQuery 网站画报特效.rar

    jQuery 网站画报特效,其实内核就是一款焦点图效果,带缩略图特效,这个效果是仿写的淘宝画报,有技术的可继续完善优化。

    jQuery权威指南366页完整版pdf和源码打包

    10.5.1 jquery在其他库前导入 10.5.2 jquery在其他库后导入 10.6 使用子查询优化选择器性能 10.7 减少对dom元素直接操作 10.8 正确区分dom对象与jquery对象 10.8.1 dom对象与jquery对象的定义 10.8.2 ...

    jquery-1.4.2库文件

    Google提供了jQuery库,通过使用Google提供的jQuery库,Google的服务器和线路品质那自然是不在话下的。即提高了下载速度又减少了自己服务器的并发连接数。 用起来也很简单,直接在网页里引用Google服务器上的相关js...

    优化Jquery,提升网页加载速度

    总是从ID选择器开始继承 在class前使用tag 将jquery对象缓存起来 掌握强大的链式操作 使用子查询 对直接的DOM操作进行限制 冒泡 消除无效查询 推迟到 $(window).load 压缩js 全面掌握jquery库 1. 总是从ID选择器开始...

    jQuery国际电话号码输入框代码.zip

    jQuery国际电话号码输入框代码是个支持国际电话号码输入的辅助jQuery插件,该插件输入体验良好,开发者实现了很多输入优化,比如:•输入国际代码自动更新对应的国家图标;•支持电话号码位数的控制;•仅能输入数字...

    jquery.stamper:一款在网页上模拟现实中的盖章效果的JQuery插件

    jquery.stamper一款在网页上模拟现实中的盖章效果的jQuery插件,0.2版本已原生支持同一个页面上多个章同时显示的问题(并且优化了DOM内存消耗)。1、说明jquery.stamper是一款模拟现实中盖章效果的jquery插件,通过...

Global site tag (gtag.js) - Google Analytics