使用 html 属性的 DOM 惩罚

2024-05-05

我正在考虑使用 HTML5 数据属性来更轻松地编写我的应用程序的第三方脚本。因此,考虑两种情况:

  1. 页面上有 10'000 个 HTML 元素,例如<div>Sticker</div>.
  2. 还有其他 10'000 个 HTML 元素,例如<div data-id="{{id}}" data-category="{{category-id}}">Sticker</div>.

第二种情况(存在 attrs)可能会影响 DOM / 渲染性能,不是吗?如果有的话,多少钱?

澄清一下,我不打算自己使用数据属性,只是将它们公开给第三方脚本或浏览器插件。考虑 dotjs 左右。有了数据属性,就可以很容易地抓取/抓取页面。


这导致的主要性能影响是在解析 HTML 中。这个时间被捕获并显示在 Chrome DevTools 时间线中,但从整体来看,它相当小。

数据属性不影响渲染树,因此对布局和绘制的影响为零。querySelector('div')性能也不会受到影响。什么性能会影响这个could所拥有的只是您将真相存储在 DOM 中,因此您将执行 DOM manip 来读取值。抓取一个元素来读取数据(使用elem.dataset)总是比从不在 DOM 上的结构中获取数据要慢。因此,您可以使用 CPU 分析器或时间线来确定应用程序内 manip 的性能开销。实际上取决于多少和频率。

TL;DR:对渲染/滚动没有影响。对页面加载时间的影响极小。对运行时性能影响很小。

所有这些事情都可以通过 Chrome DevTools Timeline 来衡量。

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

使用 html 属性的 DOM 惩罚 的相关文章

  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • PHP使用c++扩展会更快吗?

    我现在正在构建一个推荐系统 一个网站 我想使用PHP作为脚本语言 推荐系统可能会进行复杂的矩阵计算或其他操作 考虑到性能 我想用C 来做矩阵计算或者其他复杂的计算 所以我需要PHP调用C 函数 获取结果并进行其他处理 我知道我可以使用 PH
  • 如何反转包裹上的弹性盒方向以实现“蛇形包裹”?

    我想找到一种方法 让单个容器中的元素换行到与前一行相反的方向的新行 就像一条蛇向后弯曲一样 我无法使用 flexbox 以及 flex direction 和 flex wrap 属性的任何组合来实现此结果 Flexbox 结果与期望结果的
  • 如何有效地扫描每次迭代交替的 2 位掩码

    给定 2 个位掩码 应交替访问 0 1 0 1 我尝试获得运行时高效的解决方案 但找不到比以下示例更好的方法 uint32 t mask 2 uint8 t mask index 0 uint32 t f tzcnt u32 mask ma
  • 单击锚点,在同一窗口中下载文档

    我想提示用户在同一窗口中保存数据 可以是任何类似 图像 pdf excel 工作表等 我不想用HTML5下载选项 因为这并非对所有浏览器都有效 例如 我想提示用户下载谷歌徽标 如下代码所示 a href https www google c
  • GoLang 中的 HTML 部分

    我刚刚开始使用 Go 我想用它创建一个网络应用程序 我现在尝试的是以handlebarsjs 式的方式使用模板 我想将页眉和页脚从主页中取出 以便可以将它们注入到每个网页上 我当前的设置应该是解析主页 页眉和页脚 HTML 文件并缓存它们
  • 仅当用户打印时如何重定向到另一个页面

    我一直在尝试找到一种在用户实际打印时重定向到另一个页面的方法 也就是说 只有当他们从打印时打开的选项卡中单击该打印按钮时 我才想重定向 我不想要这种方法 function myFunction window print window loc
  • 与浏览器无关的 C++ DOM 接口

    当针对浏览器使用 C 进行编程时每个引擎都有一组不同的接口 IE 具有基于 COM 的 MSHTML http msdn microsoft com en us library aa752279 VS 85 aspx http msdn m
  • 如何使用 thymeleaf 和 spring 用列表填充下拉列表

    我需要用字符串列表中的所有值填充下拉列表 控制器类 RequestMapping value generateIds method RequestMethod GET public String launchPage Model model
  • 调用函数值[重复]

    这个问题在这里已经有答案了 可能的重复 函数提前触发 https stackoverflow com questions 12201816 function triggering early 我已经编写了这段代码 但是当我调用函数 test
  • 如何使用复选框来过滤 Angular 的结果?

    我正在尝试使用复选框应用过滤器 复选框正确显示 div div
  • 如何添加从 Outlook 到 Web 表单的拖放上传功能?

    我正在寻找一种方法 允许用户以简单的方式将 Outlook 电子邮件上传到基于 Web 的系统 我可以让它以手动方式为用户工作 他们可以将电子邮件从 Outlook 拖放到桌面上 这会创建一个 msg 文件 这非常有效 尤其是 电子邮件中是
  • 在 GWT 中使用 SVG

    我想知道是否可以在面板中包含 SVG 内容 或者在 GWT 中工作的任何内容 能够以编程方式向 SVG 添加更多内容 例如添加圆或曲线 并处理鼠标事件 这会是在 SVG 或 GWT 中 我尝试创建一个 HTML 对象 添加以下内容
  • Postgres 性能问题

    我们正在运行 Postgres 9 1 3 最近我们的一台服务器开始遇到重大性能问题 我们的查询在一段时间内运行良好 但截至 8 月 1 日 速度显着减慢 看起来大多数有问题的查询都是 Select 查询 带有 count 的查询尤其糟糕
  • h1、h2、h3.. 元素吃掉 div 边距

    为什么 h1 h2 h3 元素在 div 中的边距会被忽略 http jsfiddle net TzmdZ http jsfiddle net TzmdZ div class col h3 This is header h3 div div
  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob
  • 从 iframe 关闭父弹出窗口

    在domain1 com 上 我有一个链接 可以打开domain2 com 的弹出窗口 弹出窗口中有一个 iframe 也托管在 domain2 com 上 在 iframe 中 我试图关闭弹出窗口 我似乎对如何做到这一点感到困惑 在 if
  • 对于 SEO 而言,.html 扩展名是否比 .php 和 .aspx 更好?

    对于 SEO 而言 html 扩展名是否比 php 和 aspx 更好 或者少扩展名的 url 比全部更好 该扩展对排名和所有 SEO 影响不大 您页面的扩展名可能不一定表明内容是如何生成的 PHP 或 ASPX 虽然通常具有动态内容 但始
  • 如何停止在 div 外部显示图像

    考虑这段代码 div style width 100px height 100px border 1px solid black div img src http rabbitempire org wp content uploads Pe
  • 在哪里可以找到Python内置序列类型的时间和空间复杂度

    我一直无法找到此信息的来源 无法亲自查看 Python 源代码来确定这些对象是如何工作的 有谁知道我可以在网上找到这个吗 结帐时间复杂度 http wiki python org moin TimeComplexitypy dot org

随机推荐

  • 是否有用于序列化和反序列化各种格式的对象层次结构的模式?

    给定一个复杂的对象层次结构 幸运的是它不包含循环引用 如何实现支持各种格式的序列化 我不是来讨论实际实施的 相反 我正在寻找可能派上用场的设计模式的提示 更准确地说 我正在使用 Ruby 我想解析 XML 和 JSON 数据以构建复杂的对象
  • Checkstyle 规则防止调用某些方法和构造函数

    是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值 区域设置 字符集等 的构造函数或方法 我更喜欢强制执行一项政策 程序员应该明确了解系统相关的值 所以我认为以下物品是危险的 all the constructors of
  • 是否需要 AudioServicesDisposeSystemSoundID?

    我最近开始使用 AudioToolbox 框架 并注意到有一个名为AudioServicesDisposeSystemSoundID 只是想知道 调用的时候不调用上面的方法是不是内存泄漏AudioServicesCreateSystemSo
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • TensorFlow 未编译为使用 SSE(等)指令,但这些指令是可用的

    我第一次使用一些示例代码运行 TensorFlow 运行代码时我收到以下警告 有谁知道为什么会发生这种情况以及如何解决它 2017 03 31 02 12 59 346109 W c tf jenkins home workspace re
  • 如何使用 Objective C 安全地存储数据? (Mac/可可开发)

    我正在尝试创建我的可可应用程序的试用部分 我已设置所有许可 包括密钥 等 但我想知道如何存储例如用户第一次在安全的地方运行程序的时间 用户无法轻松找到它和 或编辑它 我正在摆弄 NSUserDefaults standardUserDefa
  • CvMat 和 Imread 与 IpImage 和 CvLoadImage

    使用 OpenCv 2 4 我有两个选项来加载图像 1 CvMat and Imread 2 IpImage and CvLoadImage 使用哪一个更好 我尝试将两者混合并最终出现段错误 imread返回一个Mat not CvMat
  • tf.keras.utils.image_dataset_from_directory,但标签来自 csv?

    请告诉我哪里出错了 我正在研究 Kaggle 狗品种分类挑战 我想尝试 one hot 编码与标签编码 图像未在图像目录中拆分 因此我无法将 推断 与 tf keras utils image dataset from directory
  • Android 1.5 在设备上不再显示 Android 应用程序

    我在 Android Market 上的最新更新导致我的应用程序不再适用于 Android 1 5 设备 我更改了以下内容
  • Sequel Pro / MAMP 在哪里存储本地数据库?

    我通过 Sequel Pro 和 MAMP 在我的计算机上创建了一些数据库 并运行 localhost 来查看它们 但是 我全新安装了 Mac OS Lion 但忘记将数据库备份到 sql 文件 我会定期备份文件 并预装计算机的副本 有谁知
  • JavaFX 自定义列表单元格,updateItem 被多次调用

    我正在使用一个ListView在 JavaFX 应用程序中 列表中的项目需要的不仅仅是一个字符串来显示它们 所以我做了一个自定义实现ListCell
  • 在单个图中获取 geom_hex 中的观测值 (Shiny)

    我正在尝试创建一个十六进制的交互式图 用户可以单击给定的十六进制 并接收分组在该单击的十六进制中的原始数据帧的所有观察结果的列表 下面是一个 MWE 看起来非常接近我的目标 我正在使用 Shiny hexbin 和 ggplotly app
  • Python pandas cumsum() 在达到最大值后重置

    我有一个 pandas DataFrame 其中 timedeltas 作为这些增量的累积和 在单独的列中以毫秒表示 下面提供了一个示例 Transaction ID Time TimeDelta CumSum ms 1 00 00 04
  • 实体框架一对多关系

    我的 EF 查询大约需要 3 秒才能获取 10 个玩家 因为它获取另一个表的所有 500k 行 而不是我需要的少数行 这是玩家实体 namespace RocketLeagueStats Database Entities Table pl
  • 如何在 SwiftUI 中管理 AVPlayer 状态

    我有 SwiftUI 中的 URL 列表 当我点击某个项目时 我会呈现一个全屏视频播放器 我有一个 EnvironmentObject它处理一些查看器选项 例如 是否显示时间码 我还有一个显示和隐藏时间码的切换开关 我只在本例中包含了该切换
  • 复制行并自动递增非身份键 ID 列的 INSERT INTO 语句

    给定一个包含三列的表 ID 主键 非自动递增 GroupID 一些价值 我正在尝试编写一个 SQL INSERT INTO 语句 该语句会将具有一个 GroupID 的每一行复制到一个新的 GroupID 中 起始表示例 ID GroupI
  • 添加取消上传或中止功能以引导多个文件上传插件

    我在用引导多文件上传插件 http blueimp github io jQuery File Upload basic html上传文件 我正在使用此链接上的示例 现在我想在 添加文件 按钮之外添加另一个按钮 取消上传 单击 取消上传 按
  • 如何判断一个app是原生的还是html5的? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想知道移动应用程序是如何原生或 html5 的 有没有什么软件或者网站可以说明这一点 如何检测应用程序是本机应用程序还是 html5 您可以使用 w
  • MySQL记录保存到数据库的当前时间

    我正在使用 Zend Framework 1 12 和 Mysql 我想在数据库中添加列 该列保存记录插入表中时的当前日期时间 有人知道我如何定义此列吗 此功能必须在 Mysql 站点上运行 而不是在 PHP 站点上运行 您必须将列类型更改
  • 使用 html 属性的 DOM 惩罚

    我正在考虑使用 HTML5 数据属性来更轻松地编写我的应用程序的第三方脚本 因此 考虑两种情况 页面上有 10 000 个 HTML 元素 例如 div Sticker div 还有其他 10 000 个 HTML 元素 例如 div St