优化jQuery选择器
优化jQuery选择器
选择优化比以前更加重要,因为越来越多的浏览器实现了queryselectorall()并承担了将jQuery选择器转移到浏览器的责任。记住这些小技巧可以让你轻松突破学习选择器时的瓶颈。
jQuery 扩展
如果可能的话,避免使用jQuery扩展选择器。这些扩展无法在性能让原生的queryselectorall() DOM提供的方法更有效,所以还是用jQuery提供的常规选择器吧。
|
1
2
3
4
5
|
// Slower (the zero-based :even selector is a jQuery extension)$( "#my-table tr:even" );// Better, though not exactly equivalent$( "#my-table tr:nth-child(odd)" ); |
记住,许多jQuery的扩展,包括在上面的例子中的:even,没有在CSS规范准确的对应。在某些情况下,这些扩展的方便性可能会超过其性能成本。
避免过度使用选择器
|
1
2
3
4
|
$( ".data table.attendees td.gonzalez" );// Better: Drop the middle if possible.$( ".data td.gonzalez" ); |
减少DOM节点同样可以提高选择器的效率,因为这样可以使寻找元素时减少遍历的层数。
ID选择器
使用以ID选择器开始的选择器确保万无一失。
|
1
2
3
4
5
|
// Fast:$( "#container div.robotarm" );// Super-fast:$( "#container" ).find( "div.robotarm" ); |
第一种方法 DOM 使用document.querySelectorAll(). 第二种方法 jQuery 使用效率更高的document.getElementById(), 尽管提高的效率会受后续的.find()的影响。
关于老版本的浏览器
使用就浏览器比如ie8或ie8-时有必要考虑一下建议
明确选择器
右边的选择器尽可能明确,左边的不用。
|
1
2
3
4
5
|
// Unoptimized:$( "div.data .gonzalez" );// Optimized:$( ".data td.gonzalez" ); |
如果可能的话,在你的右边选择器使用tag.class形式,左边使用tag或.class。
避免使用通用选择器
通用选择器放在任何地方效率都不高。
|
1
2
3
4
5
6
|
$( ".buttons > *" ); // Extremely expensive.$( ".buttons" ).children(); // Much better.$( ":radio" ); // Implied universal selection.$( "*:radio" ); // Same thing, explicit now.$( "input:radio" ); // Much better. |
优化jQuery选择器的更多相关文章
- jQuery选择器的优化选择
jQuery选择器的优化选择 1.1 属性选择器 var $div=$("[id]"); 选中拥有该属性的元素 var $div=$("[id=div]"); ...
- jquery选择器效率优化问题
jquery选择器效率优化问题 jquery选择器固然强大,但是使用不当回导致效率问题: 1.要养成将jQuery对象缓存进变量的习惯 //不好的写法 $('#btn').bind("c ...
- jQuery 选择器和JavaScript 选择器的技巧与异常原因
jquery的选择器借鉴了css选择器,核心依然依靠JavaScript的getElementById()和getElementsByTagName()方法,但是他封装了2个方法,让jquery选择器 ...
- 【如何使用jQuery】【jQuery弹出框】【jQuery对div进行操作】【jQuery对class,id,type的操作】【jquery选择器】
1.如何使用jQuery jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨 ...
- jquery选择器的实现流程简析及提高性能建议!
当我们洋洋得意的使用jquery强大的选择器功能时有没有在意过jquery的选择性能问题呢,其实要想高效的使用jquery选择器,了解其实现流程是很有必要的,那么这篇文章我就简单的讲讲其实现流程,相信 ...
- 如何优化JQuery each()函数的性能
如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用jQuery,这框架的API设定就有误导人们走上歧途之嫌. 01 $.fn.be ...
- JQuery选择器大全 前端面试送命题:面试题篇 对IOC和DI的通俗理解 c#中关于协变性和逆变性(又叫抗变)帮助理解
JQuery选择器大全 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素 ...
- jQuery常用API之jQuery选择器
3.jQuery常用API 3.1 jQuery选择器 3.1.1 jQuery基础选择器 原生JS获取元素的方式很多.很杂,而且兼容性情况不一致,因此jQuery给我做了封装,是获取元素统一了标准 ...
- JQuery 选择器
选择器是JQuery的根基,在JQuery中,对事件的处理,遍历DOM和AJAX操作都依赖于选择器.如果能够熟练地使用选择器,不仅能简化代码,而且还可以事半功倍. JQuery选择器的优势 1.简洁的 ...
随机推荐
- ecshop忘记管理员密码
直接修改数据表 ecs_admin_user, 找到对应的管理员, 同时修改 password 为 2fc3ec4c91d51bee94f4a8ccbdbe5383 和 ec_salt 为1819, ...
- Hibernate的基本开发流程
一.Hibernate开发的基本流程 二.Hibernate开发的环境搭建 1.引入Hibernate核心包以及Hibernate依赖包即可.可以在Hibernate目录下的\lib\required ...
- extend选项和delimiters选项 vue 数据绑定 html form 对比 id重复
{{define "chkUrl"}}<!DOCTYPE html><html lang="zh-cmn-Hans"><head& ...
- WIN7系统设置wifi
*&->20170302 112700 WIN7系统设置wifi, 开启win7的隐藏功能,即虚拟wifi功能和虚拟无线AP功能,即可实现将电脑变成wifi 供无线上网, 1.开始-命令 ...
- appium(9)-uiautomator UiSelector
uiautomator UiSelector Appium enables searching using UiSelectors. UiScrollable is also supported.// ...
- Python序列——列表
列表是什么 1 创建列表 2 访问列表和更新列表 列表相关操作 内建函数对列表的支持 1 cmp 2 序列类型函数 列表内建函数 列表应用 1 堆栈 2 队列 1. 列表是什么 列表也是序列的一种.列 ...
- ffmpeg xcode 中的使用
最近比较闲,苦于ios设备上没有直接播放torrent 文件的软件,开始折腾了.找了不少资料有了思路.但是其中用到了ffmpeg 这个东西. ffmpeg 是通用的一个视频解决框架,用C语言编写,通用 ...
- PHP Json函数不能处理中文的解决办法
PHP5.2 新增的 json 功能是非常受欢迎的,但是经过测试发现,json_encode 对中文的处理是有问题的: 不能处理GB编码,所有的GB编码都会替换成空字符: utf8编码的中文被编码成u ...
- codeforces B. Ping-Pong (Easy Version) 解题报告
题目链接:http://codeforces.com/problemset/problem/320/B 题目意思:有两种操作:"1 x y" (x < y) 和 " ...
- PHP生成一个不重复随机数组的封装方法
<?php /** array unique_rand( int $min, int $max, int $num )* 生成一定数量的不重复随机数* $min 和 $max: 指定随机数的范围 ...