diff --git a/packages/rrweb/src/replay/index.ts b/packages/rrweb/src/replay/index.ts index 4b0650b192..b34fe4add3 100644 --- a/packages/rrweb/src/replay/index.ts +++ b/packages/rrweb/src/replay/index.ts @@ -1760,6 +1760,7 @@ export class Replayer { }); const startTime = Date.now(); + const resolvedTreeNodes = new WeakSet(); while (queue.length) { // transform queue to resolve tree const resolveTrees = queueToResolveTrees(queue); @@ -1780,7 +1781,10 @@ export class Replayer { ); } else { iterateResolveTree(tree, (mutation) => { - appendNode(mutation); + if (!resolvedTreeNodes.has(mutation)) { + resolvedTreeNodes.add(mutation); + appendNode(mutation); + } }); } }