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 中会有更完善的定义;如果你需要特定类型,它们可能从新的包中导出(例如 PlayerMachineState 和 SpeedMachineState 现在从 @rrweb/replay 导出)。请查看 package.json 的 main 和 exports 字段了解可用文件。

  • #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:documentNode、documentTypeNode、legacyAttributes、textNode、cdataNode、commentNode、elementNode、serializedNode、serializedNodeWithId、serializedElementNodeWithId、serializedTextNodeWithId、IMirror、INode、mediaAttributes、attributes 和 DataURLOptions

  • 更新依赖 [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 中会有更完善的定义;如果你需要特定类型,它们可能从新的包中导出(例如 PlayerMachineState 和 SpeedMachineState 现在从 @rrweb/replay 导出)。请查看 package.json 的 main 和 exports 字段了解可用文件。

补丁变更 ​

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)

补丁变更 ​