Мне интересно использовать MutationObserver
, чтобы определить, добавлен ли какой-либо элемент HTML в любом месте HTML-страницы. Например, саке, я скажу, что хочу определить, добавлены ли какие-либо <li>
в DOM.
Все примеры MutationObserver
, которые я видел до сих пор, обнаруживают только, если в конкретный контейнер добавлен node. Например:
некоторый HTML
<body>
...
<ul id='my-list'></ul>
...
</body>
MutationObserver
определение
var container = document.querySelector('ul#my-list');
var observer = new MutationObserver(function(mutations){
// Do something here
});
observer.observe(container, {
childList: true,
attributes: true,
characterData: true,
subtree: true,
attributeOldValue: true,
characterDataOldValue: true
});
Итак, в этом примере MutationObserver
настроен для просмотра очень определенного контейнера (ul#my-list
), чтобы увидеть, добавлено ли к нему <li>
.
Это проблема, если я хочу быть менее конкретным и смотреть <li>
по всему телу HTML следующим образом:
var container = document.querySelector('body');
Я знаю, что это работает в основных примерах, которые я настраивал для себя... Но разве это не рекомендуется делать? Это приведет к низкой производительности? И если да, как бы я обнаружил и измерил эту проблему производительности?
Я подумал, может быть, была причина, что все примеры MutationObserver
настолько специфичны для их целевого контейнера... но я не уверен.