js-jQuery性能优化(二)
5、数组方式使用jQuery对象
使用jQuery选择器获取结果是一个jQuery对象。然而,jQuery类库会让你感觉正在使用一个定义了索引和长度的数组。在性能方面,建议使用简单的for或者while循环来处理,而不是$.each(),这样能使你的代码更快。
6、事件代理
常用的JS事件如click等会冒泡到父级节点,当我们需要给多个元素调用同一个函数时这点很有用。比如,我们要为一个表格绑定这样的行为:点击td后,把背景色设置为红色,如果单独给每个td绑定事件,那么当表格很大时,需要绑定很多个事件,这将给性能带来负面影响。
jQuery 1.7+提供了一个方式:on(),可以将整个表格的事件监听封装到一个便利的方法里,只需绑定一个事件:
$("#myTable").on("click","td",function(){
$(this).css("background","red");
});
7、将代码转化为jQuery插件
如果每次都需要花上一定的时间去开发类似的jQuery代码,那么可以考虑将代码变成插件。它能够使你的代码有更好的重用性,并且能够有效地帮助你组织代码。
8、使用join()来拼接字符串
在处理长字符串时,使用join()比使用“+”有助于性能优化。
首先创建一个数组,然后循环,最后使用join()把数组转化为字符串。
9、合理利用HTML5的Data属性
HTML5的data属性可以帮助我们插入数据,特别是前后端的数据交换。jQuery的data()方法,有效的利用HTML5属性,来自动得到数据。
10、尽量使用原生的JS方法
原生的方法效率高于拐弯抹角的调用许多函数,有时并不需要jQuery。
比如创建一个p元素可以优化为:
$(document.createElement("p"));
11、压缩JavaScript
现在的Web项目总是离不开大量的JavaScript,而JS文件的体积越来越大,随之也影响到页面的感知性能。因此,需要对JS文件进行压缩,一方面是使用Gzip,一方面则是去除JS文件里的注释、空白,并且压缩局部变量长度。对于一些成熟的类库来说,它们本身会提供完整版和压缩版两个版本。
js-jQuery性能优化(二)的更多相关文章
- jQuery性能优化的28个建议
我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来.我也做了一个jQuery性能优化的简明样式表,你可 ...
- jQuery:jQuery性能优化28条建议
http://www.xue5.com/WebDev/jQuery/671700.html 直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将 ...
- jQuery 性能优化技巧
原文地址:jQuery 性能优化技巧 博客地址:http://www.extlight.com 一.使用最新版本 jQuery 类库 二.合理使用选择器 # 推荐使用 $("#id" ...
- 28个jQuery性能优化的建议
我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来.我也做了一个jQuery性能优化的简明样式表,你可 ...
- jQuery性能优化指南(转载)
现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, ...
- jquery性能优化的十种方法
jquery性能优化的十种方法 有时候我们在书写jquery的时候,为了书写代码方便,往往忽略了程序执行过程中,给客户端带来的压力.随之而来的就是在某些低端浏览器或者低端电脑上运行速度缓慢,甚至无法运 ...
- 多个JS文件性能优化
页面中引入的JS文件是阻塞式加载的,这样会影响页面性能.以下是JS文件性能优化方法: 一:将所有的<script>标签放到页面底部,也就是</body>闭合标签之前,这能确保在 ...
- EMW 性能优化二之---并发配置
EMW 性能优化二之---并发配置 在前一个日志中写到交货的异步更新,对于RFUI RF的前台操作会提升效率,异步更新不用等待更新状态的返回,启用更新队列的方式执行(SM13). 下面再补全性能相关的 ...
- Babylon.js官方性能优化文档中文翻译
在这里列出Babylon.js官方性能优化文档的中英文对照,并在CardSimulate项目里对其中的一些优化方法进行实践. How To 如何 Optimize your scene 优化你的场景 ...
- jQuery性能优化和技巧
jQuery性能优化 ①使用最新版本的jQuery类库 ②使用合适的选择器 ③缓存对象 ④循环时的DOM操作 ⑤数组方式使用jQuery对象 ⑥事件代理 ⑦将你的代码转化成jQuery插件 ⑧使用jo ...
随机推荐
- spring cloud 学习(6) - zuul 微服务网关
微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService.ProductService.UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下 ...
- Shell - 简明Shell入门03 - 字符串(String)
示例脚本及注释 #!/bin/bash str="Shell" str2="Hello $str !" str3="Hello ${str} !&qu ...
- windows系统numpy的下载与安装教程
numpy是一款基于python的功能强大的科学计算包.要安装numpy首先你得先安装python.python的安装非常简单,本人安装的是python3.4. 工具/原料 安装好的python程序 ...
- CentOS 6.7 下 MYSQL 5.7 的安装与配置
安装 #yum源 http://dev.mysql.com/downloads/repo/yum/ #安装 rpm -Uvh http://dev.mysql.com/get/mysql57-comm ...
- 【转】Windows 8 desktop app中dll搜索路径设置的诡异现象,Bug?
原文地址:http://blog.csdn.net/my_business/article/details/8850151 某个桌面程序在win 8上运行异常的问题困扰了我有近一周,今天终于找到了根本 ...
- JavaScript -- Window-窗口坐标
-----029-Window-窗口坐标.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=& ...
- JavaScrip t对象和 JSON 数据格式转换
<script> //定义一个js对象 var person = { firstName: "John", lastName: "Doe", age ...
- 【详解】GrantedAuthority(已授予的权限)
前言 这篇是很久之前学习Spring Security整理的博客,发现浏览量都1000多了,一个赞都没有,那说明写得确实不怎么样,哈哈.应该很多初学者对这个接口存在疑问,特别是如果学习这个框架之前还了 ...
- Linux 普通用户启动nginx
众所周知,apache的80端口为系统保留端口,如果通过其他非root用户启动,会报错如下: ()Permission denied: make_sock: could not bind to add ...
- linux firefox 快捷方式
.输入:cd /usr/share/applications .输入:vi firefox.desktop 在vi里面输入以下内容,然后保存并退出: [Desktop Entry] Name=Fire ...