位置: 编程技术 - 正文

7个jQuery最佳实践(jquery技巧)

编辑:rootadmin

推荐整理分享7个jQuery最佳实践(jquery技巧),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery实现,jquery常用的5个方法,jquery技巧,jquery有哪些,jquery实例,jquery常用的5个方法,jquery实战,jquery实战,内容如对您有帮助,希望把文章链接给更多的朋友!

随着富网络应用(rich web applications)数量的增长,以及用户对快速交互响应的高期望,开发者开始使用JavaScript库来快速高效的完成一些重复性的工作。这其中最流行的JavaScript库就是jQuery。但是jQuery的大量应用却带来了另外一个问题:在使用JavaScript库的时候,有哪些最佳实践,又有哪些不好的实践呢?

背景

在这篇文章中,我会给大家介绍在编写、调试和审查JavaScript代码的时候一些好的实践(至少我是这么认为的)。事实上,我选择了其中7个最常见的场景。

1、使用CDN及其回退地址(fallback)

CDN代表内容传递网络(Content Delivery Network),是一个缓存了JavaScript文件的服务器。使用CDN之后,每当一个新用户发起请求的时候,你的应用程序可以使用CDN缓存,而不用从你的服务器上重新加载库文件。Google、Microsoft和JQuery都提供CDN服务。

鉴于网络并不总是%可靠,服务器也可能因为一些原因宕机,你必须要确保即使这些事情发生,你的应用程序依然能正常运行。这时候我们就要用到回退地址:当应用程序无法找到缓存库的时候,它就会回退回来,使用服务器文件。

Google CDN 是这样的:

Microsoft CDN是这样的:

需要注意的是,我们没有指定URL协议为http而是使用的//。这是因为CDN服务器支持http和https,如果你的网站拥有SSL认证,你无须修改就可以正常加载文件。

另外,就像我之前提到的那样,我们还需要一个回退地址,以防CDN服务器出现问题。

当然,你也可以用Require来配置需要的jQuery,不过我觉得就这样也不错。

2、限制DOM交互

用JavaScript操作DOM树是存在性能消耗的。jQuery也一样。所以,尽量减少与DOM的交互吧。当我帮助我一个同事提高数据显示速度的时候,我看见他在一个循环里面使用了选择器。这简直是性能杀手!他是这样写的:

有什么问题呢?咋一看没啥问题。而且我的同事也说这段代码跑得很欢乐呢!我真是哔了狗了!当TotalActions小于时,察觉不到任何问题;但是其达到的时候,速度便降低了很多,原因(我也是google到的)就是DOM交互放到了循环当中。

对于这个功能,(多次尝试失败之后)我将循环中的直接DOM交互替换成了一个数组的push操作,然后用一个空字符串作为分隔符将数组连接(join)起来。最后,程序当然变得更加流畅和高效了。

3、缓存

7个jQuery最佳实践(jquery技巧)

jQuery最重要也是最有特色的地方,就是它的选择器以及在DOM树中查找HTML元素的方式。但是,我多次看到,一些开发者在同一个函数中,多次调用相同的选择器,比如 $(“#divid”)。尽管jQuery选择元素非常快,但也不要每次都去查找相同的元素吧。所以,你可以像这样缓存的你元素:

然后在接下来的代码中,就可以用$divId了。

对于下面的代码:

我们可以对它做这样的修改,并且使用链式语法,使其看起来更加漂亮:

但是话又说回来,你也不用每次把所有东西都缓存起来。看下面的例子:

在这里,我既没有用 $(“#link”),或者将其缓存起来,而是使用的$(this)。因为在这个例子中,我操作的对象就是这个链接本身。

4、find 和 filter

最近,在使用find()来获取jQuery对象结合的时候,我产生了一些困惑。然后我发现,这个操作可以替换为用filter()方法来实现。理解这两者的区别非常重要:

find: 将会从选定的元素开始,一直向下查找DOM树

filter: 是在jQuery集合当中查找5、end()

当在jQuery集合中进行链式操作的时候,我有时候需要回到父对象去进行一些操作。比如你正在一个表格的第二行应用CSS,然后希望回到表格对象,对其添加一些样式。在你对行应用完样式之后,只要使用end()方法,你就会自动回到表格对象,然后随意的对其添加样式吧!

(译者注:find()、filter()和end()原文是大写,其实应该是小写)

6、对象字面量

当你通过链式语法来操作元素的CSS属性的时候,你可以使用对象字面量方式来提升性能。比如这段代码:

变成下面这样之后,不仅避免了操作DOM元素,而且还不用多次调用相关的设置方法:

7、善用CSS类

尽可能使用CSS类而不要写内联CSS代码。我想这一点就不需要举例说明了吧。

希望这篇文章能够帮助你编写更好的jQuery应用程序,真正的帮助到大家。

基于jQuery实现点击最后一行实现行自增效果的表格 现在任何事务都追求效率和人性化,当然网页效果也是如此,如果一个可以编辑数据的表格,编辑到最后一行的时候,点击可以自动添加一行,这样算

jQuery版本升级踩坑大全 背景--------------------------------------------------------------------------------jQuery想必各个web工程师都再熟悉不过了,不过现如今很多网站还采用了很古老的jQuery版

基于jQuery1.9版本如何判断浏览器版本类型 在jquery.1.9以前的版本,可以使用$.browser很轻松的判断浏览器的类型和版本,但是在1.9中和以后的版本中,$.browser已经被删除,下面就介绍一下如何实现

标签: jquery技巧

本文链接地址:https://www.jiuchutong.com/biancheng/379293.html 转载请保留说明!

上一篇:实例详解jQuery Mockjax 插件模拟 Ajax 请求(MATLAB图像处理实例详解)

下一篇:jQuery.ajax实现根据不同的Content-Type做出不同的响应

  • 售后回租和融资租赁账务处理
  • 私车公用如何处理
  • 认缴制股权转让印花税的计税依据是什么
  • 转出未交增值税借方
  • 一般纳税人报税流程详细操作
  • 公司欠款利息收入需要交增值税吗?
  • 一般纳税人适用会计制度怎么填
  • 增值税加计抵减最新政策2022
  • 公司向税务局缴纳环保税
  • 免税苗木发票如何抵扣计算
  • 建筑企业1%承包承租个人所得税的会计分录
  • 关于进项税额转出的规定
  • 分公司是独立法人企业吗
  • 坏账准备需要做账吗
  • 承兑到期了怎么办
  • 收到应收票据应该确认收入吗
  • 交强险保单被保险人写谁都行?
  • 收到工会经费返还属于现金流量表哪
  • 此 google 帐号尚未与设备关联
  • 营改增之前的建筑业税率是多少
  • 怎么把qq垃圾全部清除
  • 在win7系统中将打开窗口拖到屏幕顶端
  • linux中使用less命令分屏查看
  • php curl模块
  • php字符串变量
  • 租金摊销表格式
  • 小规模纳税人进口增值税怎么处理
  • 企业注销时还有应付职工薪酬怎么办
  • 金融资产的要素有哪些?
  • u盘数据全部丢失
  • 生产设备改良支出计入什么费用
  • 企业弥补亏损明细表
  • CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容
  • thinkphp import
  • 金税盘,税控盘Ukey价格
  • 结存材料实际成本分录
  • 2020年前端面试
  • 前端实战培训
  • php项目怎么打包
  • GCC strict aliasing – 嫉妒就是承认自己不如别人
  • 新增办税员需要哪些资料
  • 设备折旧费怎么使用
  • 上个月的票这个月作废后报增值税需不需要交费?
  • java静态方法和动态方法的区别
  • 已认证发票对方作废后不重开怎么办
  • 上传附报资料是哪些资料
  • 印花税是根据销售收入申报吗
  • 增值税发票已抵扣怎么红冲
  • 借款费用为什么可以企业所得税税前扣除
  • 盈余公积的提取条件
  • 事故赔偿金分配
  • 销售预付卡的账务处理
  • 购入农产品的增值税税率是多少
  • 仓库包材问题和造成的后果
  • 小规模红冲发票怎么做分录
  • 如何解决私账流失问题
  • 利息返还是什么意思
  • 业务协作费计入什么科目
  • 账上的进项税额比申报多了怎么调账
  • 上个月的发票可以作废吗
  • 发票代码和发票号码是唯一的吗
  • 什么是现金流量表
  • mysql怎么备份数据库命令
  • 计算机二级考试一年考几次
  • win10和os x el capitan分屏操作对比视频
  • linux ubuntu安装教程
  • linux命令行是什么字体
  • win10收不到20h2更新
  • 保存 linux
  • 怎么恢复手机桌面时间和日期
  • 关于加载失败壁纸
  • php autoload
  • 使用NGUI时遇到物理引擎错误
  • 局域网如何打开共享文件夹
  • javascript入门教程
  • mysql里多表查询语句怎么写
  • 内蒙古低保信息网
  • 广东省电子学校
  • 管道运输合同需不需要缴纳印花税
  • 陕西省地方税务局公告2016年第1号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设