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

转载于:https://www.cnblogs.com/caigen029/p/3476329.html

使用jQuery的9个误区相关推荐

  1. jquery获取select选中的值

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

  2. jquery封装插件

    要点: 1.理清自己的思路,你要做什么的步骤 2.你的操作需要用到jquery的哪些方法 3.页面需要引入jquery包,和你自己插件的包 步骤: 1.插件的包装 编写一个jQuery插件开始于给jQ ...

  3. javascript jquery 获取select选中的值

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

  4. JQuery学习使用笔记 -- JQuery插件开发

    内容转载自 http://www.css88.com/archives/4821 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间.这篇文章将概述jQuery插件开发的基本知识,最 ...

  5. jquery插件封装指南

    入门 编写一个jQuery插件开始于给jQuery.fn加入​​新的功能属性,此处添加的对象属性的名称就是你插件的名称: jQuery.fn.myPlugin = function(){//你自己的插 ...

  6. Web前端开发学习误区,你掉进去了没?

    从接触网站开发以来到现在,已经有五个年头了吧,今天偶然整理电脑资料看到当时为参加系里面一个比赛而做的第一个网站时,勾起了在这网站开发道路上的一串串回忆,成功与喜悦.烦恼与纠结都历历在目,感慨颇多. 先 ...

  7. jQuery:仿MSN网站的tab效果

    今天不知怎的,一直在做tab的特效,看到MSN官网的tab效果不错,就花了一点点时间小做了一下,具体效果:如下 html代码: <div class="popular"> ...

  8. 自学Web前端有哪些误区?自学Web需要掌握哪些技术

    今天要跟大家分享的文章是关于自学web前端有哪些误区?自学Web需要掌握哪些技术?如果是单纯出于兴趣,或者只是为了突击某一阶段或者某一项目技术壁垒,不跟就业挂钩的自学倒也是无关痛痒.但是当上岗成为自学 ...

  9. 7个前端新手常见误区,千万要避开!

    越来越多的开发者加入前端开发队伍.但前端知识在不断更新着,大家对它的认识也各不相同,今天就为您解读,学习web前端都有哪七大误区. 误区一:前端只是JavaScript 但我要说的是:前端不只是JS. ...

最新文章

  1. java抽象的理解_Java中抽象类的理解
  2. vim括号匹配跳转操作
  3. Theano 更多示例
  4. css-三种基本选择器
  5. 问题 K: n个数的最大值和最小值
  6. leetcode python3 简单题20. Valid Parentheses
  7. cookie与token对比(转)
  8. php在屏幕中间弹窗,屏幕中间弹框的一种写法
  9. DEAP数据库介绍--来自于音乐视频材料诱发得到的脑电数据
  10. 微信订阅号改版,我有这些看法
  11. 7.1 布朗运动定义及构造
  12. PHP强大自适应OA协同办公系统源码 含CRM客户管理系统+内部聊天工具
  13. 牛客每日练习----​​​​​​​cayun日常之三七配对,ChiMu need water,mxh道歉记
  14. 大伽「趣」说AI:在多个场景中的AI落地实践
  15. 资料分析-第一章-统计术语
  16. 嵌入式Linux —— usb鼠标驱动
  17. 采用模块化设计的轮腿式六足机器人
  18. 干货!从AI应用的五大要素看,AI产业存在哪些机会?(算力算法)
  19. Designing Machine Learning Systems with Python
  20. Topic 15. 临床预测模型之决策曲线 (DCA)

热门文章

  1. 阿里云centos 7.6安装mysql_阿里云服务器中Linux下centos7.6安装mysql8.0.11
  2. 64位系统识别内存 服务器,服务器内存和电脑内存的区别
  3. 利用LED+LDR组成可控组件搭建的振荡电路
  4. 深度神经网络在基于视觉的目标检测中的应用
  5. 第十七届全国大学生智能汽车竞赛,我们来了
  6. 智能车竞赛技术报告 | 专科基础组 - 哈尔滨铁道职业技术学院 - 智能车勇创协会
  7. 通用双谐振固态特斯拉驱动器 UD2.7
  8. 交互式讲解傅里叶变换
  9. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
  10. python之33个关键字详解_Python 中的关键字 with 详解