一些关于javascript、jQuery使用时的建议

2023-11-10

最新地址请访问:http://leeyee.github.io/blog/2011/04/09/javascript-jquery-user-suggests

1、在遍历数组时缓存长度
     在遍历数组时应将数组的长度保存在一个变量中,不要在循环中每次都访问数组长度。

2、如果需要给DOM中添加新的元素,避免创建一个元素添加一次。应尽量只添加一次

frag.appendChild(newListItem) 需要修正为 frag.appendChild(${newListItem}[0]);


3、避免重复,保持代码干燥

4、当心匿名函数。

     绑定匿名函数是让人头疼的,对于他们调试,修改,测试或者重用都是困难的。因此可以使用对象去组织和命名你的处理方法和回调函数

5、选择器的优化

5.1、通过ID来获取元素是最好的选择

5.2、选择器的右边要具体化,而不是左边。

        如果可以尽量使tag.class出现在右边,而单独的tag或者.class出现在左边

5.3、避免选择器过度具体化

5.4、避免使用通配符选择器。(能被匹配在任何地方的指定或隐含的选择器运行是非常慢的)

6、使用事件委托(Use Event Delegation)
    事件委托允许绑定一个事件处理程序到一个容器元素上(比如,一个无序序列)替代多容器元素(比如,列表项)。
    使用jQuery的$.fn.live和$.fn.delegate是易于实现事件委托的。在可能的情况下应该使用$.fn.delegate替代$.fn.live,因为$.fn.delegate省去了不必要的选择,并且当DOM上下文明确时,相对$.fn.live,使用$.fn.delegate能减少约80%的开销。

    除了性能方面的好处外,事件委托会在添加新容器元素到页面时直接绑定处理程序,而无需对新添容器元素重新绑定处理程序

7、使用$.fn.detach从DOM中移除元素
     操作DOM是缓慢的;你应该尽可能避免操作他们。在jQuery的1.4版本中提供$.fn.detach来解决这个问题。$.fn.detach允许从DOM中移除一个元素。

8、使用样式表改变样式,当需要改变许多元素样式时
    假如你将使用$.fn.css改变超过20个元素的样式时,请考虑添加一个样式标签到页面。这样可以提升约60%的执行速度

9、使用$.data替代$.fn.data存储数据
     在DOM元素上使用$.data替代在jQuery选择器上调用$.fn.data将带来可达10倍的速度提升。因为$.data是jQuery的底层方法

10、不要对不存在的元素施加操作
        jQuery不会告诉你是否正在一大堆空的选择器上运行代码,他会当做没有事情是错的继续运行。因此你需要自己去核实选择器包含的一些元素

11、变量定义
        多变量可被定义可以用一条语句替代几条语句

12、条件语句

13、不要把jQuery视作一个黑盒子
        将jQuery源码作为你的文档 -- 保存http://bit.ly/jqsource在你的书签里,并且经常查阅他

 

Source From:http://jqfundamentals.com/book/index.html#chapter-9

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

一些关于javascript、jQuery使用时的建议 的相关文章

随机推荐

  • Git 常用命令 --- git push命令

    git push的一般形式为 git push lt 远程主机名 gt lt 本地分支名 gt lt 远程分支名 gt 例如 git push origin master refs for master 即是将本地的master分支推送到远
  • golang配置国内镜像

    点击进入 golang中文网
  • elementUI图片遍历循环+预览【el-image查看大图+预览】

    我这边接受的数据结构 code 200 msg 图片列表 object id 1 partsName picturesName a jpg picturesUrl http 192 168 3 65 8111 image a jpg typ
  • POI向Excel中插入图片

    package com xiangyu bigdata xycom execl import java awt image BufferedImage import java io ByteArrayOutputStream import
  • flask-sqlalchemy 解决 with_for_update() 行锁不生效、数据滞后问题

    解决方案 我先把解决方案放在前面 后面慢慢阐明拖了我三天的研究过程和原因 若出现带锁的查询修改前 先行commit一次 model db session commit 先行commit一次 user models User query wi
  • Python-字符串str和json格式的转换

    我是精神抖擞王大鹏 不卑不亢 和蔼可亲 计算机硕士 目前小米大数据开发 日常会分享总结一些自己面试实际问题的回答 欢迎一起讨论 公众号 diting dapeng str转json str转换为json格式 前提一定需要保证这个str的格式
  • Building the kernel with clang

    https lwn net Articles 734071 https oschina net news 89194 linux build kernel with clang Building the kernel with clang
  • neo4j语法-where

    where语句无法单独使用 而是和match optional match start with一起使用 或者做为with和start的结果过滤器 基础使用 操作符 MATCH n WHERE n name Peter XOR n age
  • Matlab绘图案例,MATLAB画图大法,附详细代码

    目录 1 使用subplot创建多个子图 2 绘制误差棒图 3 绘制条形堆积图 4 绘制堆积面积图 5 绘制直方图并拟合曲线 6 绘制等高线图 7 绘制光滑的曲线 8 绘制彩虹图 9 绘制带有错误标记的散点图 10 绘制水平堆积条形 11
  • Syncthing 1.1.1 发布,文件持续同步应用

    百度智能云 云生态狂欢季 热门云产品1折起 gt gt gt Syncthing 1 1 1 发布了 Syncthing 是一款持续文件同步应用 可同步多台计算机之间的文件 此版本更新内容包括 5531 根据大小而不是条目刷新数据库 557
  • 莫烦---Tensorflow学习

    加粗样式边学边记录 感谢莫烦大神的教学视频 获益良多 之前已经看完了吴恩达Andrew Ng的视频 但对Tensorflow的使用还是有很多不懂的地方 还是要花些时间好好学学tensorflow和keras 莫烦大神的视频学习地址 Tens
  • css 动态生成动画代码在线工具,非常好用!推荐

    网址 Animista CSS Animations on Demand 这个网站提供了大量的css动画效果 用户可以自定义动画 在线生成动画代码
  • ChatGPT的代码生成是怎么做的?「基于深度学习的代码生成方法」最新研究进展...

    机器学习研究组 代码生成 Code Generation 是指根据自然语言描述生成相关代码片段的任务 在软件开发过程中 常 常会面临大量重复且技术含量较低的代码编写任务 代码生成作为最直接辅助开发人员完成编码的工作受到学术 界和工业界的广泛
  • mybatis框架学习(完整)

    目录 总结jdbc出现的问题 mybatis介绍 mybatis入门程序 占位符 与字符串拼接符 区别 mybatis框架的原理 别名配置与映射文件加载方式 mybatis与hibernate的比较 一 总结jdbc出现的问题 1 准备数据
  • 本机与服务器传输数据

    1 Xftp xftp传输的速度在500kb左右 对于上GB的数据集传输时显得太慢 技巧 可以先本地压缩后再上传 上传后在服务器端用unzip命令解压即可 警告 在使用Xftp传输文件时若与服务器不甚断连 当再次重连后一定要记得整个文件重新
  • 非阻塞的connect使用方式

    connect 函数的调用涉及到3次握手 默认connect函数为阻塞连接状态 通常connect 会阻塞到三次握手的完成和失败 而这个connect阻塞超时时间会依赖于系统 一般为75s到几分钟时间 一种方式可以通过该系统配置 proc
  • 教你如何清理 Docker 存储驱动的磁盘占用空间

    Author rab 有时候你会发现 你的 Docker 业务容器虽然做了数据持久化 且数据持久化的磁盘空间占用并不大 但是 Docker 的 Overlay2 目录占用却很大 我们知道 Overlay2 是 Docker 的存储驱动 也是
  • java 读取文件 和 执行SQL脚本 (支持中文)

    读文件操作应用 执行SQL脚本文件 执行SQL脚本文件 param path throws SQLException throws ClassNotFoundException public void exeSQLScript String
  • 操作系统原理——绪论:操作系统的概念、发展、类型、基本特征、功能、运行环境和内核结构

    目录 一 操作系统的概念 1 计算机系统的概念 2 操作系统的概念 3 为什么计算机系统需要操作系统 二 操作系统的形成与发展 三 操作系统的类型 1 批处理操作系统 Batch OS 2 分时操作系统 3 实时系统 4 嵌入式操作系统 5
  • 一些关于javascript、jQuery使用时的建议

    最新地址请访问 http leeyee github io blog 2011 04 09 javascript jquery user suggests 1 在遍历数组时缓存长度 在遍历数组时应将数组的长度保存在一个变量中 不要在循环中每