Вход

Просмотр полной версии : Динамическая подгрузка


Redfern89
04.07.2018, 12:59
Доброго времени суток уважаемые участники форума! У меня есть несколько js-файлов, которые содержат нечто подобное


document.addEventListener("DOMContentLoaded", function(e) {
"use strict";
....
});

var helper = {
......
};


каждый файл прописан в блоке head и срабатывает как ему нужно. Вот незадача. Мой сайт использует ajax-навигацию. т.е. блок head не трогается, меняется только адрес в строке, заголовок и содержимое container'а. Как сделать так, что-бы код в блоках DOMContentLoaded срабатывал при изменении контента?

Nexus
04.07.2018, 13:03
Вызывать событие DOMContentLoaded после смены контента страницы не пробовали?
Если у вас асинхронная навигация также подключается к странице, то стоит подумать о возможной утечке памяти.

Redfern89
04.07.2018, 13:08
Вызывать событие DOMContentLoaded после смены контента страницы не пробовали?

К слову контент - это отдельный блок(div) на странице.

Если у вас асинхронная навигация также подключается к странице, то стоит подумать о возможной утечке памяти.

Об этом подробнее плиз)))

Nexus
04.07.2018, 13:32
Об этом подробнее плиз
Честно говоря писать поэму по этому поводу нет желания, поэтому изложу максимально коротко.
Грубо говоря, т.н. утечка памяти может иметь место быть, если вы на один и тот же элемент будете вешать один и тот же обработчик события при каждой асинхронной смене контента.
Подобное возможно также, если используется jQuery для обработки каких-либо событий на элементах, которые входят в область, контент которой асинхронно изменяет без применения jQuery (т.к. jQuery кеширует listeners).

j0hnik
04.07.2018, 17:59
Redfern89,
может вам не DOMContentLoaded нужен, а событие hashchange?
https://developer.mozilla.org/ru/docs/Web/API/WindowEventHandlers/onhashchange