Perché l’evento DOMSubtreeModified è deprecato nel livello DOM 3?

Perché l’evento DOMSubtreeModified è deprecato e cosa dovremmo invece utilizzare?

Se scorri un po ‘ , vedi:

Avvertimento! L’interfaccia MutationEvent stata introdotta in DOM Level 2 Events, ma non è stata ancora implementata completamente e interoperabilità tra i programmi utente. Inoltre, ci sono state critiche sul fatto che l’interfaccia, come progettata, introduce una sfida di prestazioni e implementazione. Una nuova specifica è in fase di sviluppo con l’objective di affrontare i casi d’uso risolti dagli eventi di mutazione, ma in modo più performante. Pertanto, questa specifica descrive gli eventi di mutazione per il riferimento e la completezza del comportamento legacy, ma deprecano l’uso dell’interfaccia MutationEvent e dell’interfaccia MutationNameEvent .

L’API di sostituzione è osservatori di mutazione , che sono completamente specificati nel DOM Living Standard che sostituisce tutti gli stupidaggini di livello X di DOM.

Penso che la sostituzione sarà osservatori di mutazione: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

 var whatToObserve = {childList: true, attributes: true, subtree: true, attributeOldValue: true, attributeFilter: ['class', 'style']}; var mutationObserver = new MutationObserver(function(mutationRecords) { $.each(mutationRecords, function(index, mutationRecord) { if (mutationRecord.type === 'childList') { if (mutationRecord.addedNodes.length > 0) { //DOM node added, do something } else if (mutationRecord.removedNodes.length > 0) { //DOM node removed, do something } } else if (mutationRecord.type === 'attributes') { if (mutationRecord.attributeName === 'class') { //class changed, do something } } }); }); mutationObserver.observe(document.body, whatToObserve);