Ответ
Mutation Observer — это API, позволяющий отслеживать изменения в DOM. Он заменяет устаревшие MutationEvents, работая асинхронно и более эффективно.
Пример использования:
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
console.log('DOM изменился:', mutation);
});
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
characterData: true
});
Ключевые особенности:
- Работает асинхронно (изменения собираются в батч)
- Можно наблюдать за узлами, атрибутами, текстом
- Оптимизирован для производительности
- Поддерживается всеми современными браузерами
Используется для:
- Отслеживания динамического контента
- Интеграции с сторонними библиотеками
- Реализации кастомного поведения при изменениях DOM
Ответ 18+ 🔞
А, слушай, вот эта штука — Mutation Observer, ну просто пиздец как удобная! Это типа такой сторож, который сидит и смотрит, как твой DOM меняется, и не орёт по поводу каждой хуйни, как это делали старые MutationEvents, которые всех уже заебали своей тормознутостью.
Вот смотри, как это выглядит, блядь:
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
console.log('DOM изменился:', mutation);
});
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
characterData: true
});
Суть в чём, ёпта? Он не дергается на каждое чихание. Сидит себе тихо, копит все изменения, как хитрая жопа, а потом — раз! — и вываливает тебе пачку сразу. Асинхронно, блядь! Не то что эти старые ивенты, которые орали на каждый чих и всю твою страницу в говно превращали.
Чё он умеет, этот сторож-мутант?
- Сидит и ждёт, пока все изменения накопятся, а потом одним махом отчитывается — красота!
- Может следить за узлами, атрибутами и даже текстом внутри, если попросить.
- Сделан так, чтобы не ебать твою производительность в сраку.
- И, охуенно, работает везде, где есть более-менее живой браузер.
Где это, блядь, пригождается? Да везде!
- Когда у тебя контент лезет как сумасшедший, динамический, и надо знать, когда он приполз.
- Когда интегрируешь какую-нибудь левую библиотеку, которая сама по себе DOM ковыряет, и тебе надо под это дело подстроиться.
- Ну и вообще, когда хочешь сделать какую-то свою, ебучую, магию, которая срабатывает только когда в дереве что-то поменялось.
В общем, вещь, блядь, овердохуище полезная. Запоминай!