Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Динамическая подгрузка (https://javascript.ru/forum/events/74370-dinamicheskaya-podgruzka.html)

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

Цитата:

Сообщение от Nexus (Сообщение 488997)
Вызывать событие DOMContentLoaded после смены контента страницы не пробовали?

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

Цитата:

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

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

Nexus 04.07.2018 13:32

Цитата:

Сообщение от Redfern89
Об этом подробнее плиз

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

j0hnik 04.07.2018 17:59

Redfern89,
может вам не DOMContentLoaded нужен, а событие hashchange?
https://developer.mozilla.org/ru/doc...s/onhashchange


Часовой пояс GMT +3, время: 14:47.