Javascript的removeChild()和appendChild() VS display=none和display=block|inline

2024-06-28

我正在开发一个 Web 应用程序,动态显示一些控件和描述(我不想使用 jQuery 或其他库)。

此时我使用以下方法使控件出现和消失:

element.setAttribute("style", "display : inline");

and

element.setAttribute("style", "display : none");

但我正在考虑使用:

element.appendChild(childRef);

and

element.removeChild(childRef);

那么,就系统速度和代码优雅而言,哪一种是最佳解决方案呢? 或者有更好的方法来解决这个问题吗?


element.appendChild(childRef); and element.removeChild(childRef);两者都使浏览器能够操作 DOM 树,而更改 CSS 只是更改其中一个属性。

所以,改变 CSS 会更快。


开发歌剧 http://dev.opera.com/articles/view/efficient-javascript/?page=3 says

当元素的显示样式设置为 none 时,即使其内容发生更改,也不需要重新绘制,因为它没有被显示。这可以作为一个优势。如果需要对某个元素或其内容进行多次更改,并且无法将这些更改组合到单个重绘中,则可以将该元素设置为 display:none,可以进行更改,然后可以设置该元素回到正常显示。

这将触发两次额外的回流,一次是当元素隐藏时,一次是当它再次出现时,但总体效果会快得多


另一篇相关文章 http://www.ajaxlines.com/ajax/stuff/article/css_performance_making_your_javascript_slow.php解释关于reflow and repaint

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

Javascript的removeChild()和appendChild() VS display=none和display=block|inline 的相关文章

  • jQuery 会在过滤选择器中的其他参数之前搜索 ID 吗?

    这个问题与性能有关 如果我使用如下选择器 myID a Does this find myID and filter by a 或者我应该这样写声明 myID find a 我不确定 jQuery 是否足够聪明 可以首先使用 ID 执行此语
  • 使用 ReactJS 旋转图像预览

    我正在尝试使用 ReactJS 旋转图像的预览 因此 我首先允许渲染预览的上传功能 然后在用户点击上传之前 我希望他们可以选择根据自己的喜好旋转图像 这是我用来预览图像的 class ImageUpload extends React Co
  • 如何使用角度在垫选择嵌套值中包含过滤器

    我正在使用带有嵌套下拉菜单的有角材料 下拉值以父级和子级为基础嵌套 我面临两个问题 自动建议不起作用 如果我输入父名称或其关联的子名称 则必须以展开模式过滤并显示特定的父视图 如果我展开第一个父视图并尝试展开第二个父视图 则第一个父视图应在
  • 如何使用 angular2 在客户端生成 rsa 密钥对?

    我需要知道如何使用 angular2 在客户端生成 rsa 密钥对 我需要生成私钥 公钥对并将私钥保存到数据库中 并希望在客户端内使用公钥 我怎样才能实现这个 我找到了这个https www npmjs com package genera
  • Google Closure 和生成的 getter/setter

    我正在尝试让 KineticJS 与 Google Closure Compiler 一起使用 然而 KineticJS 根据变量的名称生成它的 getter 和 setter 像这样的事情 add getter and setter me
  • 在一定时间后自动更改 Firestore 中的字段值 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 I m working on Javascript and here s how s my data looks like 我想要的功
  • 使用 Passport 进行 Node.js 身份验证:如果字段丢失,如何闪烁消息?

    我正在使用 Passport js 如果我的表单字段为空 我想显示一条消息 但我不知道该怎么做 因为如果缺少护照 则不会触发策略回调 我真的希望这个用例更加清晰 而且我不想修改护照 我感觉有办法 但不知道在哪里 我尝试使用路线的回调 app
  • HTML5 Canvas - 在画布上绘图、保存上下文并稍后恢复

    要求 现在 在画布上绘制 然后点击 保存 存储画布状态 离线绘制 但不作为图像 稍后 打开画布并显示之前保存的绘图 然后继续再次绘制 对于绘图 我们通常使用如下代码 canvas document getElementById can ct
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将
  • 将 Babel 与单个输出文件和 ES6 模块一起使用

    这是我的 gulp 任务 将 ES6 代码编译成单个 ES5 文件 我使用类和模块 import export 在 ES6 中 gulp src paths scripts pipe sourcemaps init pipe babel p
  • JavaScript - babel-preset-env 不为 IE11 转换箭头函数

    我很难尝试配置 Babel 来转译 IE11 可以理解的代码 特别是箭头函数 跑步npx webpack mode development使用我的配置不会转换我的代码中的箭头函数 在eval 在生成的代码中的语句中 我可以看到所有实例都未转
  • 闭包和异步 Node.js 函数

    All 尝试了解 Node js 上下文中的闭包 异步调用 我有以下代码 timer setInterval pollOID 1000 function pollOID for channel in channels session get
  • 在浏览器开发工具中看不到SignalR流量

    我构建了使用 SignalR 的服务器和客户端代码 该网站运行完美 但我无法在任何浏览器 chrome IE Firefox 中看到网络流量 我知道网络流量在那里 因为该网站正在运行 有没有办法在浏览器中查看 SignalR 流量 如果不是
  • 如何在 Electron 中使窗口大小响应。 (打开应用程序时)

    我最近开始在 Electron 上制作一个应用程序 我想让窗口具有响应能力 例如 如果我在不同的屏幕上打开应用程序 它应该根据屏幕尺寸以全尺寸打开 我的代码 app on ready gt const htmlPath path join
  • Chrome 扩展程序导致 DOM 闪烁,该扩展程序会在页面加载之前删除 DOM 元素

    我正在编写一个 chrome 扩展 我想在页面加载之前删除内容 例如this http tech blog tomchambers me 2016 01 13 How to write a simple page rewriting Chr
  • Bootstrap 多选限制问题

    我使用创建了一个多选下拉列表引导多选 http davidstutz github io bootstrap multiselect 我需要在选项选择中设置一个限制 这里我将其设置为 5 如果达到限制 我只需禁用其他选择选项 它就可以完美工
  • 如何使用 $.ajax 发送 JSON 而不是查询字符串?

    有人可以简单地解释一下如何让 jQuery 发送实际的 JSON 而不是查询字符串吗 ajax url url dataType json I was pretty sure this would do the trick data dat
  • ag-Grid 中的行格式

    我们需要有条件地将行文本设置为粗体 目前它仅适用于单个单元格 但我们需要在所有列单元格上应用文本粗体 应用格式设置后 isBold 列必须隐藏 删除 此列仅用于格式化 如何应用文本缩进 10px isBold 列包含真实值的第一列的 有可能
  • Jquery 脉动改变颜色或图像

    我正在尝试使用 jquery 脉动代码让 div 改变颜色 但我希望它从红色变为黑色 但我听说要做到这一点 你必须下载某个插件 所以我希望它脉动为图片 到目前为止我有这两个代码 img src 36 gif alt width 105 he
  • JQuery 循环遍历动态元素并获取数据值

    我正在尝试使用可折叠面板来完成我的要求 sport on click function var thisId this attr id var thisChildren this sportlist thisChildren each fu

随机推荐

  • Python postgreSQL sqlalchemy 查询 DATERANGE 列

    我有一个预订系统 并将预订日期范围保存在 日期范围 列中 booked date Column DATERANGE nullable False 我已经知道我可以通过以下方式访问实际日期booked date lower or booked
  • 允许结构字段溢出到下一个字段

    考虑以下简单示例 struct attribute packed int code 1 int place holder 100 s void test int n int i for i 0 i lt n i s code i 1 for
  • 无法访问通过 jQuery ajax 发送的我的 Post 值

    EDIT 用 htaccess 删除 index php 会创建我刚刚发现的这个问题 现在我要着手解决它 EDIT 问题解决了 JavaScript 是错误的 url login 它需要一个尾部斜杠 ORIGINAL 在我的主页视图中 我创
  • Qt:如何制作二维插值颜色字段?

    我是 C 的初学者 尤其是与图形相关的 我想为我的图形视图制作一个动画背景 如下所示 梯度场气流 http www engineering leeds ac uk cfd research images untitled JPG 该图片表现
  • 在 Ruby 中生成正则表达式模式的字符串

    在Python语言中我发现rstr https bitbucket org leapfrogdevelopment rstr 可以生成一个字符串regex http en wikipedia org wiki Regular express
  • 如何解决转移/减少冲突?

    我正在使用 CUP 创建论文所需的解析器 我的语法中存在移位 归约冲突 我有这个生产规则 command IDENTIFIER IDENTIFIER LPAREN parlist RPAREN 我有这个警告 Warning Shift Re
  • 具有最大高度的 div 内的表格

    我想要一个可滚动的表格 为了实现这一点 我包装了一个 table into a div with a max height and overflow auto 除此之外 div has display inline block以确保 div
  • 在接收器上获取 Chromecast 发送器 URL

    Chromecast 接收者是否可以确定特定发送者的 URL 我可以获得发件人列表 const context cast framework CastReceiverContext getInstance context getSender
  • C++ win32 从资源加载字符串

    好吧 我最近决定将应用程序中的每个字符串放入 STRINGTABLE 中 这样我就可以轻松翻译成不同的语言 我知道如何使用 LoadString api 但这涉及我为要加载的每个字符串使用不同的变量 如果我的应用程序有 100 个字符串 那
  • 如何在颤动中设置容器的不透明度

    我想为包含十六进制颜色代码的容器设置不透明度 如何做呢 这是我当前的代码 final body Container width MediaQuery of context size width margin const EdgeInsets
  • 通过标记现有提交来触发 Jenkins 管道

    描述 我设置了 Jenkins 2 126 以便在推送新标签时构建管道 具体来说 我想将现有提交标记为master as release 3并让它触发构建 根据多个消息来源 我想要的是可能的 https mohamicorp atlassi
  • 在 java 中解析非常大的 XML 文档(以及更多)

    以下全部用Java编写 我必须构建一个应用程序 该应用程序将可能非常大的 XML 文档作为输入 该文档已加密 不是使用 XMLsec 而是使用我客户预先存在的加密算法 将分三个阶段进行处理 首先 将根据上述算法对流进行解密 其次 扩展类 由
  • PS3 上的 Mono 开发资源

    我一直在考虑冒险在我的 Playstation 3 上安装 Linux 由于 C 是我当前选择的语言 所以下一个合乎逻辑的步骤是安装 Mono 我做了一些研究发现http psubuntu com wiki InstallationInst
  • 合并两个 json 对象

    我有以下输入 2 个 json 文件 第一个是基本文件 第二个包含相同的属性但不同的值 我想合并这些对象 例如 a b asda c asdasd 第二个文件 a b d 结果应该是这样的 a b d c asdasd 用powershel
  • 正则表达式匹配句尾标记[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要匹配所有句末符号 例如 句点 等在给定的文本正文中 任何人都可以帮我解决正则表达式来做这样的事情吗 输入示例 This is t
  • 如何延迟从 ActiveMQ 在 Apache Camel 中消费消息

    我有一个要求 当客户端应用程序在 5 秒的时间范围内发送超过 1000 个请求时 我需要通过调整 排队 入站流量来进行限制 我遵循的解决方案是 我有一个camel throttle 将最大请求数设置为 1000 时间跨度设置为 5 秒 当超
  • C++:如何从 make_shared 部分推导模板参数

    为了规避对部分提供的显式模板参数的限制 https stackoverflow com questions 41833630 c17 class template partial deduction 我嵌入了要从中推导出类模板参数的结构 I
  • 反射的性能:JVM 中的高质量字节码

    Edit 2 是否有一个完全的程序object oriented实施能带来高性能吗 大部分的framework是用它的全部力量写的 然而 reflection也被大量用于实现它 例如AOP and dependency injection
  • Laravel - 在一个方法中返回多个值

    这是我目前陷入困境的地方 我正在执行多种方法 对同一个表进行不同的查询 public function totalOfA return a Stocks where user id this gt employee gt id gt whe
  • Javascript的removeChild()和appendChild() VS display=none和display=block|inline

    我正在开发一个 Web 应用程序 动态显示一些控件和描述 我不想使用 jQuery 或其他库 此时我使用以下方法使控件出现和消失 element setAttribute style display inline and element s