Я заметил, что на моем сайте инструменты разработчика Google Chrome «Performance Monitor» отображают цифры, отличные от тех, которые определены с помощью getEventListeners()
и document.querySelectorAll('*')
.
Как вы можете видеть на скриншоте ниже, количество событий, рассчитанных в консоли, значительно больше, чем указано в инструментах разработчика Chrome, а число узлов DOM значительно ниже.
Есть идеи, как это можно объяснить?
function countDomEventListeners (elements) {
return Array.from(elements).reduce((count, node) => {
const listeners = getEventListeners(node)
for (var eventName in listeners) {
count += listeners[eventName].length
}
return count
}, 0)
}
elements = document.querySelectorAll('*')
console.log('DOM Nodes:', elements.length)
console.log('DOM event listeners:', countDomEventListeners(elements))