JavaScript MutationObserver.takeRecords() — забрати накопичені зміни


Метод takeRecords() віддає зміни, які ще не потрапили в обробник, і очищає чергу.

автор: NagarD

Загальний опис

Спостерігач збирає зміни пачками й викликає обробник не миттєво, а трохи згодом. Тому в черзі завжди може щось лежати.

І саме тут ховається втрата: disconnect() цю чергу викидає. Якщо зміни, що не встигли долетіти, важливі — забери їх через takeRecords() перед відключенням.

Другий випадок — коли треба обробити зміни синхронно, просто зараз, не чекаючи на планувальник.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
takeRecords 26+ 14+ 7+ 15+ 12+ 11+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
takeRecords 4.4+ yes yes 7+

Приклади

+ запропонувати свій приклад у пісочниці

Не загубити зміни, що не встигли долетіти до обробника.

HTML

<div id="watched">Елемент</div>

JS

const container = document.getElementById('watched');
const observer = new MutationObserver(() => {});

observer.observe(container, { childList: true });

container.appendChild(document.createElement('span'));

// disconnect() викине чергу — спершу забираємо накопичене
const pending = observer.takeRecords();
console.log('Накопичилось змін:', pending.length);

observer.disconnect();
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід