Длинный заголовок рассказывает историю.
Давайте представим, что у меня есть MutationObserver, который записывает сеанс просмотра и дает мне список MutationRecord с временными метками, добавляемыми вручную к каждому из них.
Я хочу воспроизвести список, как если бы это было видео: DOM воспроизводится и изменяется в соответствии с временной меткой MutationRecords. В значительной степени, как описано этот ответ .
Допустим, я хочу быть как можно ближе к тегу HTML5 видео, особенно это возможно для поиска по временной шкале, и я хочу, чтобы процесс поиска был максимально быстрым с визуальной обратной связью во время поиска.
Это означает, что на временной шкале есть перетаскиваемый курсор времени и что при перетаскивании курсора воспроизведение «видео» обновляется настолько быстро, насколько это возможно, при перетаскивании, так что процесс поиска дает представление о домене почти в реальном времени. модификации (если возможно).
Я полагаю, что поскольку MutationRecords являются дельтами, вычисление в процессе поиска, особенно поиск в конце временной шкалы или быстрый и случайный поиск по временной шкале, требует вычисления сложения всех дельт и является слишком длинным обновляться в режиме реального времени.
Есть ли какая-либо техника или идеи, которые я мог бы использовать в этом отношении?
Я думал о «ключевых кадрах», где каждый N MutationRecord я вычислял бы фактическую DOM. Может быть, есть лучшее решение для этого? Пересчитать все DOM "априори"?