Skip to content

rrdom

概述

rrdom 是一个虚拟 DOM 库,rrweb 使用它来回放 DOM 变更。它是一个独立的库,可用于创建虚拟 DOM 树,并将补丁应用到真实 DOM 上。rrweb 使用它来优化回放性能,尤其是在跳转(seeking)时。

有关 rrweb 的更多信息,请参阅指南

在 GitHub 上编辑 README

rrdom 发布说明

2.1.1

补丁变更

  • 更新依赖 []:
    • rrweb-snapshot@2.1.1

2.1.0

补丁变更

  • 更新依赖 [b08a06f]:
    • rrweb-snapshot@2.1.0

2.0.1

补丁变更

  • 更新依赖 [5f52d63]:
    • rrweb-snapshot@2.0.1

2.0.0

重大变更

  • #1497 2606a2a 感谢 @Juice10! - 分发的文件使用了新的文件名、路径和扩展名。重要:如果你直接引用分发的文件或类型,可能需要更新路径/文件名。例如你从 rrweb/typings/...rrdom/es 导入。但如果你使用 import rrweb from 'rrweb' 的方式导入,则不会受到此变更的影响。 如果你直接在 script 标签中引入 rrweb 文件,可能需要将该路径更新为 .umd.cjs 文件。所有 .js 文件现在使用 ES 模块,可在现代浏览器、node.js 以及支持 ES 模块的打包器中使用。所有 npm 包现在还同时提供 .cjs.umd.cjs 文件。.umd.cjs 文件是将所有文件打包在一起的 CommonJS 模块,便于向浏览器环境分发单个文件(类似于之前的 .js 文件)。.cjs 文件是可在旧版 Node.js 环境中使用的 CommonJS 模块。类型在 package.json 中会有更完善的定义;如果你需要特定类型,它们可能从新的包中导出(例如 PlayerMachineStateSpeedMachineState 现在从 @rrweb/replay 导出)。请查看 package.jsonmainexports 字段了解可用文件。

  • #1127 3cc4323 感谢 @YunFeng0817! - 重构:在超大型基准测试用例中将性能提升 80%。

    1. 重构:将 childNodes 的数据结构从数组改为链表
    2. 提升 “contains” 函数的性能。新算法会将复杂度从 O(n) 降至 O(logn)
  • #1031 ad9bc3e 感谢 @Juice10! - 将 rrweb 共享的事件和录制器类型移至新的 @rrweb/types 包。

  • #913 74f553a 感谢 @Yuyz0112! - 将仅限浏览器的 rrdom 功能移至新的 rrdom 包。

次要变更

  • #1503 335639a 感谢 @Juice10! - 支持顶层 <dialog> 组件。修复 #1381。

  • #1035 2a80949 感谢 @Juice10! - 新增通过 recordCrossOriginIframes 录制跨域 iframe 的支持。

  • #989 3809060 感谢 @YunFeng0817! - 新增对可构造样式表 adoptedStyleSheets 的录制与回放支持,包括样式表变更、replace/replaceSync、shadow root、iframe、实时模式以及虚拟 DOM 回放。

  • #1000 ce6019d 感谢 @wfk007! - 新增对媒体 playbackRate 变化的录制与回放支持。

  • #895 de755ae 感谢 @Juice10! - 为回放新增快进虚拟 DOM 优化。

补丁变更

2.0.0-alpha.20

补丁变更

  • 更新依赖 []:
    • rrweb-snapshot@2.0.0-alpha.20

2.0.0-alpha.19

补丁变更

2.0.0-alpha.18

补丁变更

  • #1561 8e55c45 感谢 @billyvg! - 在 diff 时忽略无效的 DOM 属性

  • #1593 5a78938 感谢 @daibhin! - NodeType 枚举已从 rrweb-snapshot 移至 @rrweb/types 以下类型已从 rrweb-snapshot 移至 @rrweb/types:documentNodedocumentTypeNodelegacyAttributestextNodecdataNodecommentNodeelementNodeserializedNodeserializedNodeWithIdserializedElementNodeWithIdserializedTextNodeWithIdIMirrorINodemediaAttributesattributesDataURLOptions

  • 更新依赖 [02cc62d, 04ee6ed, 5fbb904, 5a78938]:

    • rrweb-snapshot@2.0.0-alpha.18

2.0.0-alpha.17

次要变更

补丁变更

2.0.0-alpha.16

补丁变更

2.0.0-alpha.15

重大变更

  • #1497 2606a2a 感谢 @Juice10! - 分发的文件使用了新的文件名、路径和扩展名。重要:如果你直接引用分发的文件或类型,可能需要更新路径/文件名。例如你从 rrweb/typings/...rrdom/es 导入。但如果你使用 import rrweb from 'rrweb' 的方式导入,则不会受到此变更的影响。 如果你直接在 script 标签中引入 rrweb 文件,可能需要将该路径更新为 .umd.cjs 文件。所有 .js 文件现在使用 ES 模块,可在现代浏览器、node.js 以及支持 ES 模块的打包器中使用。所有 npm 包现在还同时提供 .cjs.umd.cjs 文件。.umd.cjs 文件是将所有文件打包在一起的 CommonJS 模块,便于向浏览器环境分发单个文件(类似于之前的 .js 文件)。.cjs 文件是可在旧版 Node.js 环境中使用的 CommonJS 模块。类型在 package.json 中会有更完善的定义;如果你需要特定类型,它们可能从新的包中导出(例如 PlayerMachineStateSpeedMachineState 现在从 @rrweb/replay 导出)。请查看 package.jsonmainexports 字段了解可用文件。

补丁变更

2.0.0-alpha.14

补丁变更

2.0.0-alpha.13

补丁变更

2.0.0-alpha.12

补丁变更

2.0.0-alpha.11

补丁变更

2.0.0-alpha.10

补丁变更

  • 更新依赖 [c6600e7]:
    • rrweb-snapshot@2.0.0-alpha.10

2.0.0-alpha.9

补丁变更

  • #1222 b798f2d 感谢 @YunFeng0817! - 修复:rrdom 的 bug

    1. 修复 diff 算法中的一个 bug。
    2. 忽略 iframe 的 “srcdoc” 属性,以避免覆盖内容。
  • 更新依赖 [d7c72bf]:

    • rrweb-snapshot@2.0.0-alpha.9

2.0.0-alpha.8

补丁变更

2.0.0-alpha.7

补丁变更

2.0.0-alpha.6

补丁变更

2.0.0-alpha.5

重大变更

  • #1127 3cc4323 感谢 @YunFeng0817! - 重构:在超大型基准测试用例中将性能提升 80%。

    1. 重构:将 childNodes 的数据结构从数组改为链表
    2. 提升 “contains” 函数的性能。新算法会将复杂度从 O(n) 降至 O(logn)

补丁变更