Форматирование html после fetch запроса
Использую fetch запрос для обновления информации в блоке страницы (загружаются карточки предложений после фильтрации).
Некоторые нюансы:
- Карточки расположены внутри контейнера div#cards
- Карточки выстраиваются в masonry layout с помощью JS-библиотеки
- fetch передает готовую вёрстку всего содержимого для div#cards
- fetch вызывается изменением любого фильтра и отдаёт новую вёрстку (обработка происходит на сервере в PHP)
- Контент заменяется в div#cards с помощью inner.html
Все работает хорошо, кроме одного нюанса. Скрипт, выстраивающий сетку, не дожидается обновления всего контента в div и запускается раньше, из-за чего нарушается порядок блоков и отображение.
Проверено: установка timeout для скрипта решает проблему, но существует задержка, в ходе которой посетитель видет «сырой» контент без masonry.
Что пробовал делать:
- Вызывал скрипт в fetch через then, сразу после передачи inner.html
- Вызывал скрипт отдельно, после исполнения fetch
- Пытался использовать отслеживание события мутации div, прослушивание не исправило ситуацию
- Ставил timeout - помогает, но из-за задержки вёрстка выглядит пару секунд ужасно
Вопрос: возможно ли как-то запустить сборку макета (скрипт) ровно в тот момент, когда контент будет заменен на 100%?
Возможно, есть идеи, куда копать или как по-другому решить вопрос? Благодарю.