在 JQuery 中查找节点的成本是多少?

2024-02-28

我总是保存结果find()为了避免多次子树遍历,如果我多次需要该值:

var $a_bar = $('div.foo').find('a.bar');
$a_bar.removeClass(...);
// ... code here
$a_bar.bazz();

代替

$('div.foo').find('a.bar').removeClass(...);
// ... code here
$('div.foo').find('a.bar').bazz();

我想知道这是否不是微优化...那么在以下位置查找节点的成本/复杂性是多少JQuery?


您可以在 js perf 上测试它:http://jsperf.com/ http://jsperf.com/只需创建一个测试并运行它。

我在这里创建了一个小测试:http://jsperf.com/jquery-find55 http://jsperf.com/jquery-find55

在我的浏览器(firefox 18)上:

  • 测试 1(我保存查找结果)每秒执行 7,074 次操作
  • 测试 2(我不保存查找结果)每秒执行 1,553 次操作

所以,是的,find是“慢”的,将其存储在变量中绝对是个好主意。

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

在 JQuery 中查找节点的成本是多少? 的相关文章

  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • 专用网络:web3.eth.getAccounts() 始终发送空数组

    我正在运行一个私人以太坊网络 我确实用https aws amazon com blockchain templates 整个设置已经完成 AWS 上的设置看起来正确 现在 我正在尝试创建帐户并检索所有这些帐户 为此 我使用以下方法 Web
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • 常规 JavaScript 可以与 jQuery 混合使用吗?

    例如 我可以采用这个脚本 来自 Mozilla 教程 https developer mozilla org en Canvas tutorial Basic usage
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 使用 jQuery 修改 HTML 表格的结构

    我有一个元素列表 X在以下示例中 显示在 HTML 表格的行或列中 从 HTML 代码的角度来看 我有 水平显示 table tr td A td td B td td C td tr table 或 垂直显示 table tr td A
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c
  • Serviceworker Bug event.respondWith

    我的 serviceworker 的逻辑是 当发生获取事件时 它首先获取包含一些布尔值 而不是 event request url 的端点 并根据我正在调用的值检查该值event respondWith 对于当前的获取事件 我正在提供来自缓
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 如果使用遗留库,如何避免 Java 中的未检查转换警告?

    我喜欢java中的泛型功能并且经常使用它 但如果我使用尚不支持泛型的库 我就会遇到问题 Servlet 就是一个例子 如果你使用ServletRequest getParameterMap 结果将是一个原始地图 但它只包括String作为钥
  • 在 R 3.1.1 (Windows) 中安装 rCharts 时出错

    是否有适用于 R 3 1 1 的 rCharts 版本 我尝试了2种方法 均失败 方法一 devtools install github ramnathv rCharts Downloading github repo ramnathv r
  • 是否可以在 Meta 刷新之前运行 JavaScript 代码

    一直以来 我们都在使用这个可靠的网站重定向 HTML JavaScript 代码
  • 如何在 Swift 中实现范围滑块

    我正在尝试实现范围滑块 并且使用了名为的自定义控件NMR范围滑块 https www cocoacontrols com controls nmrangeslider 但是当我使用它时 滑块根本不出现 难道也是因为它都是用 Objectiv
  • TestNG 跳过测试 - 为什么?

    我正在使用 testng 和 selenium 测试一个网络应用程序 测试主要包括打开应用程序的几个页面 并针对每个页面执行一些特定的活动 因此 我有一个执行 打开页面 测试的抽象基类 并定义了一个用作该测试的数据提供程序的抽象方法 然后有
  • 比较字符串时忽略希伯来语元音

    晚上好 我希望你能帮助我解决这个问题 因为我正在努力寻找解决方案 我有一个单词提供者 他给我元音希伯来语单词 例如 Vowelled 不元音 元音 不元音 与我的提供者不同 我的用户通常无法输入希伯来语元音 我也不应该希望他这样做 用户故事
  • Hill Cipher算法中如何计算逆密钥矩阵?

    我发现很难理解希尔密码算法中矩阵逆的计算方式 我知道这一切都是通过模算术完成的 但不知何故 事情并没有加起来 我真的很感激一个简单的解释 考虑以下希尔密码密钥矩阵 5 8 17 3 请使用上面的矩阵进行说明 你必须学习线性同余定理 http
  • Boost ASIO 和 co_await- 与任何第三方回调一起使用吗?

    一个简单的函数 awaitable
  • 仅在 Android 8.0 及更高版本上资源和布局方向渲染不正确

    我有一个多语言应用程序 主要语言为英语 次要语言为阿拉伯语 我正在打电话setLocale in the onCreate 每一个的Activity在我的应用程序中 public static void setLocale Locale l
  • 从桌面应用程序与 Silverlight 4 LocalMessageReceiver 通信

    我正在为 Silverlight 4 OOB 应用程序开发一个小助手应用程序 安装它可以稍微增强 SL 的功能 改进剪贴板支持 全局热键等 我知道 Silverlight 的本地消息 API 基于 ALPC 这是一个相当未记录的 Windo
  • 方法分配和对象

    我有一个 python 问题 我想将一个方法分配给另一个类的对象 但在这个方法中使用它自己的属性 由于我的项目中有许多具有不同使用方法的容器 不在该示例中 因此我不想使用继承 这将迫使我为每个实例创建一个自定义类 class contain
  • 手动写入后无法使用javascript更新textarea

    我正在编写一个在线应用程序 将一些文本保存到数据库中 大约有 5 个 textarea 和 5 个 input type text 我还实施了搜索以轻松查找和编辑数据库条目 将显示一个新的选择窗口 使用原型和 ajax 当单击其任何条目时
  • 使用 sqlite 进行 Node.js 护照身份验证

    它可以使用node js 护照和sqlite 数据库与会话吗 所有示例仅使用 mongoDb 我想收集 sqlite 中的所有数据 下面是一个使用示例护照本地 https github com jaredhanson passport lo
  • 使用 Jackson 反序列化枚举

    我正在尝试使用 Jackson 2 5 4 反序列化枚举 但失败了 而且我不太明白我的情况 我的输入字符串是驼峰式大小写 我想简单地映射到标准枚举约定 JsonFormat shape JsonFormat Shape STRING pub
  • JBoss AS 7 中的 hibernate 是否需要 c3p0 连接池

    我的项目正处于开始阶段 我在休眠方面遇到了一个大问题 我正在使用 hibernate 4 1 8 Final 和 c3p0 0 9 1 2 我有以下实体类 javax persistence Entity Table name CUSTOM
  • 在 Android 应用程序中提交带有 POST 数据的表单

    我已经在网上搜索一种方法来做到这一点大约一周了 但我似乎无法弄清楚 我正在尝试实现一个应用程序 我的大学可以使用它来允许用户轻松登录校园内的各种服务 目前的工作方式是他们进入在线门户 选择他们想要的服务 填写他们的用户名和密码 然后单击登录
  • 使用 python 检测 Windows 10 上的 USB 设备插入

    我无法获取以下代码检测USB设备插入 http timgolden me uk python win32 how do i detect device insertion html在我的 Windows 10 64 位 计算机上使用 Pyt
  • javascript数组数字键导致过多的“未定义”

    我当前的 webApp 有一个 OOD 系统 每个元素都有一个 id 并放置在每个页面的 elements 数组中 无论 elemenet 放置在哪个页面 每个新元素的 id 都是一个连续的数字 因此 例如 如果我们在一个有 7 个页面的项
  • 如何检查密码强度? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何检查密码的强度 作为string 使用 Net框架 基本但合乎逻辑的 enum PasswordScore Blank 0 VeryW
  • 在 JQuery 中查找节点的成本是多少?

    我总是保存结果find 为了避免多次子树遍历 如果我多次需要该值 var a bar div foo find a bar a bar removeClass code here a bar bazz 代替 div foo find a b