Я зацікавлений у використанні MutationObserver
для виявлення, чи додано певний елемент HTML де-небудь на сторінці HTML. Для прикладу, я скажу, що хочу виявити, чи <li>
є де-небудь додані де-небудь у DOM.
Усі MutationObserver
приклади, які я бачив досі, виявляють лише додавання вузла до певного контейнера. Наприклад:
трохи 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
приклади настільки конкретні з цільовим контейнером ... але я не впевнений.