`
realic
  • 浏览: 17888 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用JQuery的9个误区

阅读更多

使用JQuery的9个误区
作者:夜飞羽 来源:mxria.com  时间:2012-05-16

        JQuery是如此容易使用以至于我们有时候忘记了CSS的存在。我们在使用CSS时,几乎不去考虑性能,因为它已经是快得不值得再去做什么优化上的努力。但现实世界中,JQuery会导致令开发人员发疯的性能问题。有时你会毫无知觉地就损失那么几毫秒。我们也很容易忘记的一些功能并继续使用一些旧的(和不那么好的)的功能。以下是使用JQuery过程容易犯的9个错误,看看是不是你也曾遇到过?

JQuery

1.不使用最新的版本


如今的稳定版本是1.7.2,你看看你的机器是不是最新的?可能你不会把已经做好的网站再去更新一把,毕竟这个工作量可能没人给你付费,但新的开发项目呢?千万别忘记了使用最新的版本哦,毕竟每个版本更新肯定会在功能或性能上有所提升,或者修复了几个Bug,但有时惰性让人不想再去研究新版本的变化,因此,提醒你别忘记了在新项目用新的一定比旧版本要好。

2.不使用CDN-hosted的JQuery

很多人喜欢Download到自己的服务器上,然后调用。似乎潜意识里文件放在自己手里比较有安全感。但大部分时候,除非你特别牛,自己的服务器比不过CDN服务器。如果流量小,可能没有什么影响,但如果流量一旦大了,性能方面的影响就非常突出了,这时,你完全可以考虑CDN服务器嘛,比如google的Copy,这对于网站的性能有很大的帮助!
你只需要调用时采用如下:

1
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

3.使用了CDN-hosted版本但没有备份措施

尽管我们相信Google很牛逼,不会出问题,但别忘记了你在天朝,一切皆有可能!因此,在html代码中加上本地服务器版本的容灾计划还是很有必要的,也非常简单:

1
2
3
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

4. 忘记链式写法

我们在进行一些普通操作时,如果多使用链式操作方式,可以提高性能,不用多次加载元素。例如

1
2
3
4
5
6
7
$(“#mydiv”).hide();
 
$(“#mydiv”).css(“padding-left”, “50px”);
 
JQuery会获取元素2次
 
$(“#mydiv”).hide().css(“padding-left”, “50px”);
一次搞定,有时候链式写法带来的性能改善是相当可观的哦

5.忘记缓存

这是跟性能相关的重要提示:别忘记缓存!如果页面中调用了某个元素至少2次,你就应该考虑缓存了。通过一个变量就可以在JQuery中缓存选择器。当第二次使用该选择器时,只需引用该变量即可。这样做的好处就是JQuery不用再次遍历搜索整个DOM树去寻找你选择的元素。例如

1
2
3
4
var $myMxria = $(“#mydiv”).hide();
 
//......
$myMxria.show();

 

 

 

6.干嘛不使用原始的JS?

用惯了$,大家就基本忽略document.getElementById了,但不得不说,滥用$也是不对的,为什么呢?如果只是纯粹的属性修改,使用原始的javascript性能更好,完全没有使用JQuery对象。例如下面的例子中,浏览器还是会将JQuery对象转化为DOM节点进行操作。

1
 $mydiv[0].setAttribute('class', 'awesome');  //这种写法有点性能上不划算。

7.未作检查的滥用插件

如今,JQuery流行起来也带来无数插件,精彩的、雷人的各种插件很多。我们很喜欢追随潮流,用些时髦玩意儿。但事实上,很多插件需要我们认真评估,看看到底是不是适合你的项目,或者说你真的需要吗?有没有考虑以下因素呢?

  • 文件大小:超过10k的大小就得反复考虑一下哦
  • 性能评估:图个方便不在乎性能?真的吗?
  • 跨浏览器支持: 看看你的客户在用什么浏览器,别忘记了古老的IE6可是依然风采依旧哦
  • 移动支持: 确认插件是可以在Mobile环境下运作正常的

8 不用JQuery

不用不行吗?干嘛一定要用呢?很多时候我们可能根本没有想过这个问题,首先想到的可能是用Jquey好像很容易实现啊!这个误区真的很普遍,你有一把快刀砍到底的习惯吗?

9 使用JQuery干服务器端的活

JQuery太好了,太强大了,似乎一切都可以在前端搞定!于是,我们又会进入一个误区:类似有效性检查和数据验证的活,忽略了在服务端的重要性。很多业务逻辑能在前端处理的就一古脑在前端处理,过犹不及的悲剧就此发生!千万要记住,前端浏览器里啥事都可能发生!!!禁用JS、某个不兼容问题、伪造数据、攻击行为,这些都不是开发者能100%掌控到的,所以,服务端的活千万别因为JQuery的强大而放松警惕!

以上供参考,看看你有无走进误区?

分享到:
评论

相关推荐

    jquery验证框架学习教程

    jQuery验证框架学习教程详细介绍了jQuery及其验证插件的使用方法,旨在帮助开发者快速掌握jQuery这一强大的JavaScript库,并学会如何使用其提供的验证功能来增强Web应用的用户交互体验。 首先,jQuery是一个开源的...

    从零开始学习jquery

    jQuery 是一个广泛使用的 JavaScript 库,它为开发者提供了一系列强大且简洁的功能,使得网页交互和动态效果的实现变得更加容易。本教程适合初学者,特别是那些有一定 JavaScript 基础但尚未接触过 jQuery 的朋友们...

    JQuery入门

    jQuery是一个被广泛使用的轻量级脚本库,它简化了JavaScript编程,提高了开发效率,尤其在处理浏览器兼容性和实现丰富的用户界面(UI)效果方面表现出色。 1. **jQuery的定义**:jQuery是一个集合了众多工具方法和...

    从零开始学习JQUERY

    为了让大家更好地理解如何使用jQuery,接下来将通过一个简单的“Hello World”示例来展示如何编写第一个jQuery程序。 1. **引入jQuery库:** 首先需要在HTML文件中引入jQuery库。可以通过CDN链接直接引入,也可以...

    开始认识jQuery.docx

    - 纠正脚本知识误区:jQuery 教育开发者正确使用 JavaScript,比如避免在 DOM 加载前操作 DOM,正确理解和使用事件处理等。 6. **jQuery 实战** - jQuery 动画:如使用 `.animate()` 方法实现自定义动画效果,...

    jQuery获取复选框被选中数量及判断选择值的方法详解

    示例代码中指出了一个常见的误区,即错误地判断`$("#id").attr("checked")=="true"`。正确的判断方式应该是`$("#id").attr("checked")==true`,因为`.attr("checked")`返回的是一个属性字符串,而不是布尔值。 示例...

    JQuery toggle使用分析

    JQuery中的toggle()函数是jQuery库中一个非常实用的动画方法,它用于切换元素的显示状态。当你调用这个方法时,如果元素当前是隐藏的,它将会被显示出来;如果元素是可见的,它将被隐藏。这个方法既可以通过直接调...

    jquery-easyui1.9.4中文参考手册.zip

    jQuery EasyUI 是一个基于 jQuery 的前端框架,专为简化企业级开发而设计。它提供了一系列的JavaScript组件,可以帮助开发者快速构建用户界面,无需深入理解复杂的前端技术。EasyUI 的优势在于其出色的兼容性和高度...

    jQuery对象和DOM对象的相互转化实现代码

    转化的例子中,有一个常见的误区是关于`this`关键字的使用。在JavaScript中,`this`的值取决于它所在的上下文。在jQuery事件处理函数中,`this`通常指向触发事件的DOM元素。如果尝试直接在`this`上调用jQuery方法,...

    jquery获取select选中值的方法分析

    误区: 以前一直以为jquery获取select中option被选中的文本值,是这样写的: 复制代码 代码如下:$(“#s”).text(); //获取所有option的文本值 实际上应该这样: 复制代码 代码如下:$(“#s option:selected”).text()...

    jQuery获得document和window对象宽度和高度的方法

    在使用这些方法时,我们还需要注意一个常见的误区,那就是$(document).width()和$(window).width()在某些情况下可能会返回不一样的值。通常情况下,它们都应该返回同样的结果,除非页面内容超出了视口尺寸,或者页面...

    jquery淡入淡出效果简单实例

    本文实例讲述了jquery淡入淡出效果实现方法。分享给大家供大家参考,具体如下: 之前理解有一些误区,以为淡入淡出是删除该元素,其实只是把该元素隐藏起来 和 显示出来罢了。 具体代码如下: &lt;!DOCTYPE ...

    Ext JS添加子组件的误区探讨

    在探讨Ext JS添加子组件的误区时,首要问题是许多人倾向于在渲染子组件时将Grid渲染到容器内的一个div元素中。这种做法虽然看起来方便,但往往会导致后续布局调整的问题。在Ext JS框架中,布局是通过控制容器的直接...

    编程中常犯的两个错误

    初学者常常会陷入一个误区,他们过分专注于理论知识,大量阅读编程书籍,寄希望于通过理论来完全掌握编程。然而,编程是一项实践性很强的技术,理论知识若不通过实践是很难被真正掌握的。正确的学习方法应该是将理论...

    Angular2进阶之如何避免Dom误区

    以下是一个使用Renderer2操作DOM的示例代码: ```typescript import { Component, ElementRef, Renderer2, ViewChild, OnInit, AfterViewInit } from '@angular/core'; @Component({ selector: 'app-product', ...

Global site tag (gtag.js) - Google Analytics