Ich möchte MutationObserver
feststellen, ob ein bestimmtes HTML-Element irgendwo auf einer HTML-Seite hinzugefügt wird. Zum Beispiel möchte ich sagen, dass ich erkennen möchte, ob <li>
irgendwo im DOM irgendwelche hinzugefügt wurden.
Alle MutationObserver
Beispiele, die ich bisher gesehen habe, erkennen nur, ob einem bestimmten Container ein Knoten hinzugefügt wurde. Zum Beispiel:
etwas HTML
<body>
...
<ul id='my-list'></ul>
...
</body>
MutationObserver
Definition
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
});
In diesem Beispiel wird das MutationObserver
Setup so eingerichtet, dass ein ganz bestimmter Container ( ul#my-list
) überwacht wird, um festzustellen, ob irgendwelche <li>
an ihn angehängt sind.
Ist es ein Problem, wenn ich weniger spezifisch sein und <li>
über den gesamten HTML-Text wie folgt achten möchte:
var container = document.querySelector('body');
Ich weiß, dass es in den grundlegenden Beispielen funktioniert, die ich für mich selbst eingerichtet habe ... Aber ist es nicht ratsam, dies zu tun? Wird dies zu einer schlechten Leistung führen? Und wenn ja, wie würde ich dieses Leistungsproblem erkennen und messen?
Ich dachte, es gibt vielleicht einen Grund, warum alle MutationObserver
Beispiele mit ihrem Zielcontainer so spezifisch sind ... aber ich bin mir nicht sicher.