千万别忘记了使用最新的版本哦,毕竟每个版本更新肯定会在功能或性能上有所提升,或者修复了几个Bug,但有时惰性让人不想再去研究新版本的变化,因此,提醒你别忘记了在新项目用新的一定比旧版本要好。

AD:

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

1.不使用最新的版本

你看看你的机器是不是最新的?可能你不会把已经做好的网站再去更新一把,毕竟这个工作量可能没 人给你付费,但新的开发项目呢?千万别忘记了使用最新的版本哦,毕竟每个版本更新肯定会在功能或性能上有所提升,或者修复了几个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. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  2. <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

4. 忘记链式写法

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

  1. $(“#mydiv”).hide();
  2. $(“#mydiv”).css(“padding-left”, “50px”);
  3. JQuery会获取元素2次
  4. $(“#mydiv”).hide().css(“padding-left”, “50px”);

一次搞定,有时候链式写法带来的性能改善是相当可观的哦

5.忘记缓存

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

  1. var $myMxria = $(“#mydiv”).hide();
  2. //......
  3. $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的强大而放松警惕!

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

原文链接: http://webdesignledger.com/tips/9-jquery-mistakes-you-shouldnt-commit

使用jQuery的9个误区的更多相关文章

  1. jQuery为哪般去掉了浏览器检测

    由于做HTML5相关的项目,许多前卫时髦的前端技术就需要考虑一下IE是否支持.要是在以前,可以很方便地调用jQuery的jQuery.browser来实现. If(jQuery.browser.msi ...

  2. JavaScript 误区

    接触JavaScript两年多遇到过各种错误,其中有一些让人防不胜防,原来对JavaScript的误会如此之深,仅以此文总结一下常见的各种想当然的误区 String replace string的re ...

  3. jquery插件开发基础入门

    jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...

  4. jQuery插件开发详细教程

    这篇文章主要介绍了jQuery插件开发详细教程,将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱,需要的朋友可以参考下 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间. ...

  5. 关于javascript的误区

    JavaScript 误区 接触JavaScript两年多遇到过各种错误,其中有一些让人防不胜防,原来对JavaScript的误会如此之深,仅以此文总结一下常见的各种想当然的误区 String rep ...

  6. Jquery获取selelct选中值

    误区: 一直以为jquery获取select中option被选中的文本值,是这样写的: $("#s").text();  //获取所有option的文本值 实际上应该这样: $(& ...

  7. 《jQuery风暴》第2章 必须知道的JavaScript知识

    第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部 ...

  8. JavaScript的一些常见误区

    原文出处: 色拉油的博客   接触JavaScript两年多遇到过各种错误,其中有一些让人防不胜防,原来对JavaScript的误会如此之深,仅以此文总结一下常见的各种想当然的误区. String r ...

  9. jQuery 关于点击菜单项,使子条目“向上”展开效果的实现

    为什么做了这样一个的功能呢?原因是前一段时间jQuery群里有个朋友想实现这样一个东东,大家都知道jQuery中有现成的slideDown和slideUp方法,但那是向下展开,而这个是一个完全相反的效 ...

随机推荐

  1. PHP.11-PHP实例(二)-面向对象实例(图形计算器)

    面向对象实例(图形计算器) [PHP语法详解] 1.实现外观 #不同的动作,输出不同的表单 ###关于PHP中,无法使用localhost访问.php文件[http://www.360doc.com/ ...

  2. JavaFX(三)窗口拖动

    1.问题场景 在上一篇中,我们将窗口的默认标题栏隐藏从而导致鼠标点击窗体无法进行拖动. 2.解决思路 给组件添加鼠标按下事件监听器和鼠标拖动事件监听器. 3.代码实现 代码片段: private do ...

  3. 错误与修复:ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误,恒处于FF5卷动条位置

    浏览器版本号继续升级过程中.IE9诞生了,IE10 也即将问世,火狐5和6已经发布了,而7和8也快出现了,Opera已经到了11,Chrome还在继续,我也不知道,应该总在14和50之间吧.不管怎样, ...

  4. android复合控件

    一.复合控件TopBar   创建复合控件可以很好地创建出具有重用功能的控件集合.比如TopBar. 做法:一般需要继承ViewGroup,再给它添加指定功能的控件.   以TopBar为例:   1 ...

  5. iOS-实现验证码倒计时功能(1)

    验证码倒计时按钮的应用是非常普遍的,该Blog就和你一起来写一个IDCountDownButton来实现验证码倒计时的效果.你可以想使用普通的UIButton类型按钮一样,只需要设置其倒计时时长(若未 ...

  6. hibernate 查询

                String hql = "select * from Commodity where commodityName like :commodityname" ...

  7. python(1) - 输入和输出

    前面已经说过了,print()函数括号里加上字符串,就可以实现输出 >>> print('This is Python!') This is Python! print()函数也可以 ...

  8. CF Spreadsheets (数学)

    Spreadsheets time limit per test 10 seconds memory limit per test 64 megabytes input standard input ...

  9. WampServer下修改和重置MySQL密码(转)

    转自:www.2cto.com/database/201504/387589.html WampServer安装后密码是空的, 修改一般有两种方式: 一是通过phpMyAdmin直接修改: 二是使用W ...

  10. Linux 命令 - killall: 通过进程名向进程发送信号

    命令格式 killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME... killall -l, --list killall -V, ...