Я использую Mutation Observer для отслеживания изменений на странице, чтобы реагировать на новые изображения, добавляемые на страницу, и обновлять их URL-адреса. Существует также часть JS, которая выполняет отложенную загрузку и изменяет URL-адреса, когда изображения приближаются к области просмотра, используя Intersection Observer.
Вопрос в следующем: быстрее ли отключить наблюдателя мутации перед изменением URL-адреса в части с отложенной загрузкой и снова подключить его снова сразу после изменения, или же быстрее пометить элемент DOM каким-либо образом (сохранить его в list, пока он обновляется) и игнорировать изменение функции обратного вызова?
Изменения отложенной загрузки происходят асинхронно, так как изображения сначала имеют заполнители изображений LowQ, а наблюдатель пересечения настраивает события загрузки на конечных изображениях, чтобы избежать пустых изображений между ними, поэтому мне нужно отключить / возобновить наблюдатель мутаций на каждом изображении .onload, созданный наблюдателем перекрестков.
JS - это библиотека оптимизации изображений, поэтому она не контролирует, что и когда происходит на странице, на которой она включена.
Я думаю, что все сводится к тому, насколько быстры и легки методы наблюдения () и Disconnect (). Если они просто добавляют и удаляют из внутреннего списка браузера, он должен быть в порядке и чище, так как в любом случае альтернатива состоит в том, чтобы оставить себе такой список элементов, которые ожидают рассмотрения. Размер DOM, который я не могу контролировать, поскольку JS предназначен для быть включенным на любую страницу, следуя простым некоторым правилам. Прежде чем реализовывать оба способа и проверять производительность на них, я подумал, что спрошу здесь ... :)
Я считаю, что должно быть наоборот: вы сначала измеряете, а затем подтверждаете, если необходимо. Это потому, что без фактического измерения самостоятельно вы не должны полагаться на чье-либо мнение или измерения, выполненные в неизвестных и непроверенных условиях.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вероятно, это зависит от сложности DOM и некоторых других вещей. Это задача, которую вы можете (и должны) выполнить самостоятельно всего за несколько секунд / минут, либо вручную открыв performance.now (), либо путем профилирования в панели devtools
Performance.