书写高质量jQuery代码

1、正确引用jQuery

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

1  <body>
2    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
3    <script>
4          window.jQuery || document.write(‘<script type="text/javascript" src="js/jquery-1.11.1.min.js"><\/script>‘)
5    </script>
6 </body>

2.优化jQuery选择器

1 <div id="nav" class="nav">
2        <a class="home" href="http://jquery.com/">jQuery官网</a>
3        <a class="download" href="http://jquery.com/download//">jQuery下载</a>
4 </div>

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

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

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

3.缓存jQuery对象

缓存jQuery对象可以减少不必要的DOM查找,关于这点大家可以参考下缓存jQuery对象来提高性能。

4.正确使用事件委托

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

1 <table id="t">
2    <tr>
3         <td>单元格</td>
4    </tr>
5 </table>
1 $(‘#t‘).on(‘click‘, ‘td‘, function () {
2       $(this).css({ ‘color‘: ‘red‘, ‘background‘: ‘yellow‘ });
3 });

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

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

6.减少DOM操作

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

1 var $t = $(‘body‘);
2 $t.append(‘<table>‘);
3 $t.append(‘<tr><td>1</td></tr>‘);
4 $t.append(‘</table>‘);

好的做法:

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

  这样在拼接完table串后再添加到body中,对DOM的操作只需一次。群里以前有朋友就因为这个导致在IE下输出时出现
问题,而关于字符串的拼接可以参考下最快创建字符串的方法。

时间: 2024-08-01 08:43:22

书写高质量jQuery代码的相关文章

书写高质量jQuery代码的5条经验

对于前端来说,jQuery应该很熟悉吧,但是我们如何写出高质量的jQuery代码呢?看看这5个建议吧.让我们重新审视自己的代码,重新学习jQuery http://www.maiziedu.com/course/789/. 1.正确引用jQuery · 尽量在body结束前才引入jQuery,而不是在head中. · 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件. · 如果在前引入script文件的话,就不用写document.re

如何书写高质量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代码

众所周知,jQuery现在已经非常流行,百度新首页中也已经开始使用jQuery,今天总结下怎么书写更好的jQuery代码使jQuery代码更好.更快的执行,希望本篇jQuery教程一改大家以前不合理的做法. 1.正确引用jQuery 尽量在body结束前才引入jQuery,而不是在head中. 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现问题时,要引入本地的jQuery文件. 如果在</body>前引入script文件的话,就不用写document.ready了,因

怎么才能书写高质量jquery代码

我略一沉思"凌雪说的,确实可以一试,咱们如果在前期就强势击败这群人夺得将军令的话,把雪月的旗帜往小镇里一杵,谁敢不给几分颜面?" 没过几分钟,我忽然收到鬼炙的一条短信"书生,我们在暮光城东门那里看到不少傲世的玩家在集结,是不是他们又有什么事情了?" 这时,灵儿已经飞跃上前,一击剑荡四方,紧接着化身为霜狼,一记极冻之牙之后,犀牛王的全身凝上了一层好看的冰霜. 再次花掉一个回城卷轴来到了白云城,包裹内的两件装备,风雷护腿直接装备上,而惊雷青龙戟则直接在书生小卖部里上架,

如何书写高质量的jQuery代码(转)

想必大家对于jQuery这个最流行的javascript类库都不陌 生,而且只要是前端开发人员肯定或多或少的使用或者接触过,在今天的这篇文章中,参考了一些资料及实际使用效率,将介绍一些书写高质量jQuery代码的 原则,不单单会告诉你如何去书写,也会告诉你为什么这样书写,希望大家会觉得有所帮助. 注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); //

如何书写高质量的jQuery代码

想必大家对于jQuery这个最流行的javascript类库都不陌生,而且只要是前端开发人员肯定或多或少的使用或者接触过,在今天的这篇文章中,我们将介绍一些书写高质量jQuery代码的原则,我们不单单会告诉你如何去书写,也会告诉你为什么这样书写,希望大家会觉得有所帮助. 注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: 1 $loading = $('#loading'); //这个是全局定义,不知道

iOS书写高质量代码之耦合的处理 干货!

iOS书写高质量代码之耦合的处理 耦合是每个程序员都必须面对的话题,也是容易被忽视的存在,怎么处理耦合关系到我们最后的代码质量.今天Peak君和大家聊聊耦合这个基本功话题,一起捋一捋iOS代码中处理耦合的种种方式及差异. 简化场景 耦合的话题可大可小,但原理都是相通的.为了方便讨论,我们先将场景进行抽象和简化,只讨论两个类之间的耦合. 假设我们有个类Person,需要喝水,根据职责划分,我们需要另一个类Cup来完成喝水的动作,代码如下: 1 2 3 4 5 6 7 8 9 //Person.h

JavaScript手札:《编写高质量JS代码的68个有效方法》(一)(1~5)

编写高质量JS代码的68个有效方法(一) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { marg

高质量的代码

五一期间,以前的同事在qq上问了一个问题:你认为什么样的代码是高质量的代码? 当时由于在外地游玩,没有及时回复.今天抽出时间,回复了一下他: 这个问题说难不难,说简单也不简单.每个人所处的水平.经验.喜好都会影响对代码质量的理解.以下是我认为的高质量代码:1.可读性.能让大多数的人都看懂.除了变量命名.函数规模及组合方式等基本因素外,所选语言的表达能力,也会影响可读性.Ruby的表达能力就比Java.C#更高级. 除了对模块的整体注释之外,代码中应该尽可能减少注释,除非有产生二义性的部分.因为代