关于jQuery的九大使用误区

2023-05-16

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

不使用最新的版本

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

不使用压缩版的jQuery

很多人认为没压缩的JQuery比压缩的大不了几k,没必要非得用min版的,但是如果你的服务器访问量大的话,1~2k大小的文件产生的带宽就是很大的。

不使用CDN-hosted的jQuery

很多人喜欢Download到自己的服务器上,然后调用。似乎潜意识里文件放在自己手里比较有安全感。但大部分时候,除非你特别牛,自己的服务器比不过CDN服务器。如果流量小,可能没有什么影响,但如果流量一旦大了,性能方面的影响就非常突出了,这时,你完全可以考虑CDN服务器嘛,这对于网站的性能有很大的帮助!
Bootstrap中文网提供的开源项目免费 CDN 服务就是一个不错的选择。

<script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>

使用了CDN-hosted版本但没有考虑备份措施

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

<script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<script>
    window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>');
</script>

忘记链式写法

我们在进行一些普通操作时,如果多使用链式操作方式,可以提高性能,不用多次加载元素,有时候链式写法带来的性能改善是相当可观的。例如:

$("#mydiv").hide();
$("#mydiv").css("padding-left", "50px");
//JQuery会获取元素2次
$("#mydiv").hide().css("padding-left", "50px");

忘记缓存

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

var $myMxria = $("#mydiv").hide();
$myMxria.show();

孤注一掷的使用jQuery

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

$mydiv[0].setAttribute('class', 'awesome');

滥用插件

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

文件大小:超过10k的大小就得反复考虑一下哦

性能评估:图个方便不在乎性能?真的吗?

跨浏览器支持: 看看你的客户在用什么浏览器

移动支持: 确认插件是可以在Mobile环境下运作正常的

使用jQuery干服务器端的活

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

彩蛋

这里留一个彩蛋,我只总结了九大误区,剩下一个等待你来总结。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于jQuery的九大使用误区 的相关文章

  • 如何使用 jsPDF 和 HTML2Canvas 从网站获取多页 pdf?

    我有一个使用 HTML2Canvas 来截取屏幕截图的脚本div在页面中 然后使用 jsPDF 将其转换为 pdf 问题是生成的 pdf 只有一页 而屏幕截图在某些情况下需要不止一页 例如 屏幕截图大于 8 5x11 宽度很好 但我需要它来
  • 在 jQuery 中删除或更改 CSS 伪类

    一个足够简单的问题 如此简单 是否可以使用 jQuery 删除或更改 CSS 伪类 或者任何其他与此相关的 Javascript 方法 具体来说 我想摆脱 专注于输入 我无法以任何方式直接更改 CSS 文件 谢谢你的帮助 Buster 我无
  • 为什么 jQuery 在其构造函数实现中要这样做?

    如果我们查看最新的 jQuery 源代码http code jquery com jquery latest js http code jquery com jquery latest js我们看到以下内容 var jQuery funct
  • 在asp.net mvc 3项目中渲染部分视图onclick

    在我的 mvc 项目中 我有一个简单的项目列表 其中包含如下的增删改查操作 tbody foreach var item in Model tr td item Title td td item Body td td item Price
  • 获取无法使用引导轮播脚本读取未定义的属性“offsetWidth”

    我创建了一个carousel with Bootstrap 3 3它可以在我的本地计算机上运行 但是当我将整个内容上传到服务器上时 其中引导程序js文件与单个文件中的其他文件一起编译 我收到此错误 Cannot read property
  • JavaScript 和 jQuery 有什么区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 可能的重复 jQuery 和 JavaScript 有什么区别 https stackoverflow com questions 2
  • 垄断选择随机卡和流行阵列

    Click function click createCards pickCard 选卡 function pickCard var x Math floor Math random 15 0 1 0 var title cards cha
  • 就性能而言,在页面上显示 1000 张图像的最佳方法是什么?

    我试图在一个页面上显示 1000 个相当小的图像 确实很多 但超出了我的控制范围 当一次性加载所有图像时 一次渲染 1000 张图像 性能显然会受到严重影响 我尝试在滚动时应用图像 src 大量 250px 滚动 25 个图像加载等 然后尝
  • 使用 jquery 迭代 JSON 对象

    为什么以下不起作用 在循环内 当 myJSON 为空或不为空时 它永远不会打印 url each parseJSON myJSON function key value alert value url 对于这个 JSON 结构 host f
  • jquery如何捕获动态生成按钮的点击事件

    我看到有这个语法用于检测任何按钮单击 但是如果我只想检测页面上的特定按钮怎么办 编辑 这对于开始时设置的按钮来说似乎很好 但在我的例子中 我使用 jquery 动态创建它们 看来这些按钮没有击中此代码 有任何想法吗 您需要将 click 绑
  • TypeError: 使用 ajax 时 google.load 不是一个函数

    我正在使用 Google 图表 termcloud 来显示一些数据 我可以让它作为页面上的静态功能正常工作 但是当我尝试通过 ajax 加载图表及其资产时 它似乎一直抛出错误 TypeError google load is not a f
  • jConfirm 警报 - jQuery 插件

    Am jConfirm 用于用户确认 我的第一个 jConfirm 不会因用户操作而停止 而是传递到下一个 My Code function UpdateJobHandler click function var JobHander get
  • 带参数的 jQuery Ajax PUT

    看起来使用jQuery Ajax POST会传递参数 但是PUT会 不是 我查看了当前的 jQuery 代码 PUT 和 DELETE 不存在 我查看了 1 4 2 jQuery 其中有 PUT 和 DELETE 使用当前版本的 jQuer
  • 如何在浏览器验证带有“必填”属性的字段后禁用提交按钮?

    我们使用以下 jQuery 来禁用提交按钮 以防止重复提交 服务器速度慢 jQuery document ready function SENDE BTN INAKTIV STELLEN input type submit click fu
  • 如何在div的整个内容中禁用jquery mobile的样式?

    我从事 jQuery Mobile 的项目 在页面中 我想使用mobilescroll对于选择 I try data role none 但这对孩子不起作用 和mobilescroll创建自己的标签 如何在整个内容中禁用 jQuery Mo
  • 数据表、计算列

    我正在尝试使用 DataTable 插件在表中创建一列 该列是使用前两列的值计算的 像这样的东西 价格 数量 总计 Price QTY Total 5 2 10 10 3 30 4 1 4 我觉得它应该很简单 但我无法让它发挥作用 这是我试
  • 在 IOS9 中的 Cordova 应用程序上使用 JQuery/Javascript 的 window.history 问题

    我在 IOS9 测试版 下使用 Cordova 应用程序时遇到问题 我正在使用最新的 Cordova 和 JQuery 移动版本 window history 未更新 导致以下故障 window history go 1 无法返回页面 即使
  • JQuery:检查元素是否处于正常流程中

    使用 jQuery 检查元素是否在正常流程中的最优雅的方法是什么 根据CSS3规范 http www w3 org TR css3 box 如果满足以下条件 则框属于流 其 display 的使用值为 block list item tab
  • 开始拖动另一个元素

    是否可以用另一个元素开始拖动 例如 http jsbin com igohod edit preview http jsbin com igohod edit preview 我想开始拖动 ct当我点击 icon 尤其 icon不是后裔 c
  • jQuery UI 和原型冲突

    我正在 Perl 中向我们的网站添加一个新表单 不是我的选择 表单会自动生成大量 html 以创建一致的外观 我的问题在于遗留系统在整个页面 包括加载时 中使用原型来处理各种事情 不过我想使用 jQuery 主要是 jQuery UI 中的

随机推荐

  • js实现图片放大镜效果

    一 HTML文件 lt DOCTYPE html PUBLIC 34 W3C DTD XHTML 1 0 Transitional EN 34 34 http www w3 org TR xhtml1 DTD xhtml1 transiti
  • PHP获取文件的修改时间、访问时间和inode 修改时间

    filemtime string filename 返回文件上次被修改的时间 xff0c 出错时返回 FALSE 时间以 Unix 时间戳的方式返回 xff0c 可用于 date 例如 xff1a a 61 filemtime 34 log
  • PHP设计模式之单例模式

    最近开始学习设计模式 xff0c 由于一开始没有系统的学习 xff0c 导致学的知识七零八落的 xff0c 得好好整理一下了 单例模式 xff08 职责模式 xff09 xff1a 简单的说 xff0c 一个对象 xff08 在学习设计模式
  • 创业资金来源

    创业资金的获得一般有以下几个途径 xff1a 一 自有资金 这个主要是自身的存款 xff0c 一般工作几年的人或多或少都有点存款 xff0c 这一部分的钱是自己创业的基本基金 二 股权融资 股权融资 xff0c 是指创业者或中小企业让出企业
  • Cannot modify header information解决办法

    如果在执行php程序时看到这条警告 Warning Cannot modify header information headers already sent by 可以尝试以下几种解决方法 Use exit statement 用exit
  • 中国距离VR市场成熟还要多久?

    VR xff08 Virtual Reality的缩写 xff0c 中文翻译 虚拟现实 xff09 概念早在80年代初就被提出来的 xff0c 其具体是指借助计算机及最新传感器技术创造的一种崭新的人机交互手段 中国VR产业仍在摸索阶段 亟缺
  • URL重写规则

    今天给大家详细讲解一下RewriteCond指令与RewriteRule 指令的格式 Rewirte主要的功能就是实现URL的跳转和隐藏真实地址 xff0c 基于Perl语言的正则表达式规范 帮助我们实现拟静态 xff0c 拟目录 xff0
  • 二值信号量与互斥锁区别

    互斥锁和二值信号量在使用上非常相似 xff0c 但是互斥锁解决了优先级翻转的问题 以军长 师长 团长为案例 xff0c 讲解mutex与signal区别 xff0c 以下是时序图 参考 xff1a https www cnblogs com
  • redisson-spring-boot-starter

    redisson spring boot starter spring boot 配置 spring redis redisson config classpath redisson beta yml 或者 spring redis red
  • URL中"#" "?" "&"号的作用

    10年9月 xff0c twitter改版 一个显著变化 xff0c 就是URL加入了 符号 比如 xff0c 改版前的用户主页网址为http twitter com username 改版后 xff0c 就变成了http twitter
  • STAR法则的简历应用

    STAR法则 即为Situation Task Action Result的缩写 xff0c 具体含义是 Situation 事情是在什么情况下发生 Task 你是如何明确你的任务的 Action 针对这样的情况分析 xff0c 你采用了什
  • BI商业智能

    关键字 xff1a 商务智能 xff0c 数据仓库 xff0c ETL BI xff08 Business Intelligence即商务智能 xff09 xff0c 百度百科用的解释是 xff0c 它是一套完整的解决方案 xff0c 用来
  • 遗传算法 一个模拟自然进化过程的启发式搜索算法

    关键字 xff1a 遗传算法 遗传算法 xff08 Genetic Algorithm xff09 是一种模拟自然界 自然选择 和 自然遗传 的启发式搜索算法 xff0c 通过模拟自然进化过程搜索最优解的方法 直到1989年 xff0c 实
  • PHP四大基本排序算法

    冒泡排序 思路分析 xff1a 在要排序的一组数中 xff0c 对当前还未排好的序列 xff0c 从前往后对相邻的两个数依次进行比较和调整 xff0c 让较大的数往下沉 xff0c 较小的往上冒 即 xff0c 每当两相邻的数比较后发现它们
  • 设置centos的YUM源为国内阿里云源

    阿里云Linux安装镜像源地址 xff1a http mirrors aliyun com http mirrors aliyun com repo CentOS系统更换软件安装源 第一步 xff1a 备份你的原镜像文件 xff0c 以免出
  • PHP八大设计模式

    PHP命名空间 可以更好地组织代码 xff0c 与Java中的包类似 Test1 php span class php span class hljs preprocessor lt php span span class hljs key
  • GitLab使用手册

    安装Git 安装环境 xff1a windows下载地址 xff1a git官方网站安装包 xff1a 64位安装过程 xff1a 傻瓜式安装至此安装完毕 生成私钥和公钥 ssh span class hljs attribute keyg
  • echarts使用心得

    前言 第一次参加工作 xff0c 公司使用图表很频繁 xff0c 我之前会highcharts xff0c 但是公司基本上都是使用的echarts xff0c 于是自己开始琢磨echarts xff0c 使用起来却颇费了一番工夫 所以就把使
  • JQuery插件之Masked Input

    Masked Input是一个字符输入格式化的jQuery插件 它可让你轻松的实现对各种数据的输入进行格式限制 xff0c 如日期 电话等 Masked Input在IE Firefox Safari和Chrome通过测试 Mask会自动为
  • 关于jQuery的九大使用误区

    jQuery是如此容易使用 xff0c 以至于我们有时候忘记了CSS的存在 我们在使用CSS时 xff0c 几乎不去考虑性能 xff0c 因为它已经是快得不值得再去做什么优化上 的努力 但现实世界中 xff0c JQuery会导致令开发人员