Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2018, 20:20
Новичок на форуме
Отправить личное сообщение для freebsdd Посмотреть профиль Найти все сообщения от freebsdd
 
Регистрация: 30.11.2018
Сообщений: 3

Выгрузка "динамических" скриптов из памяти браузера
Добрый день!

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

<script id="js_section1" src="/files/section1.js" type="text/javascript"></script>

При переходе в другой раздел - эти скрипты удаляются по их ID (id="js_section1") и подгружаются новые.

Работает, всё нормально фукнции в скрипте отрабатывают нормально, только есть делема, если в скрипте есть событие на документ:

$(document).on('click'.....

То браузер оставляет его в памяти, даже если из раздела вышли и скрипт удалён со страницы, и зашли туда вновь и скрипт снова подгружен, то событие дублируется и срабатывает уже дважды (т.е. "тыкнул" мышкой, а браузер воспринимает уже не 1, а N кликов).

Как можно "выгрузить" из памяти это событие или какие можно придумать другие решения?
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2018, 20:30
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Удаление тега скрипт не несёт никакого смысла. Тег скрипт ответственен только за загрузку файла, если файл загружен и отработал - никакие манипуляции с ним ни на что не влияют.
Таким образов всё, что наделал первый скрипт, надо вычищать вручную (on снимать off итд). Скрипт должен изначально предусматривать необходимые методы как для инициаоизации так и для разрушения.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2018, 20:37
Новичок на форуме
Отправить личное сообщение для freebsdd Посмотреть профиль Найти все сообщения от freebsdd
 
Регистрация: 30.11.2018
Сообщений: 3

Сообщение от Aetae Посмотреть сообщение
Удаление тега скрипт не несёт никакого смысла. Тег скрипт ответственен только за загрузку файла, если файл загружен и отработал - никакие манипуляции с ним ни на что не влияют.
Таким образов всё, что наделал первый скрипт, надо вычищать вручную (on снимать off итд). Скрипт должен изначально предусматривать необходимые методы как для инициаоизации так и для разрушения.
Т.е. нужно придумать другое решение, как например, если подгрузился раз и больше не выгружать, а все "$( document ).ready...", просто ещё раз подгружать вместе с телом страницы, правильно я понял?

И ещё вопрос, если не удалять тег скрипта, со временем работы, и если пройтись по всем разделам загрузятся все. Большую нагрузку на браузер несут подгруженные скрипты?
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2018, 20:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

На процессор несут нагрузку только те скрипт, которые что-то делают, на память только те данные на которые есть хотя бы одна ссылка.
Если при "переходе меж страницами" вы качественно всё подчищаете - то нагрузки нет вообще никакой. Если же где-то в левых переменных висят куски старых данных, а на клик по странице срабатывает сто обработчиков делающих одно и то же - тогда да, тоска и печаль.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2018, 21:46
Новичок на форуме
Отправить личное сообщение для freebsdd Посмотреть профиль Найти все сообщения от freebsdd
 
Регистрация: 30.11.2018
Сообщений: 3

Сообщение от Aetae Посмотреть сообщение
На процессор несут нагрузку только те скрипт, которые что-то делают, на память только те данные на которые есть хотя бы одна ссылка.
Если при "переходе меж страницами" вы качественно всё подчищаете - то нагрузки нет вообще никакой. Если же где-то в левых переменных висят куски старых данных, а на клик по странице срабатывает сто обработчиков делающих одно и то же - тогда да, тоска и печаль.
Хорошо, переделаю - пусть все скрипты подгружаются и остаются, а с переменными буду аккуратнее, спасибо Вам большое!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утечки памяти в ExtJS alexey91 ExtJS 1 28.03.2016 21:02
FancyBox: Размер модального окна больше размеров окна браузера (высота), как сделать? clgs Events/DOM/Window 3 22.01.2015 17:13
Динамическая подгрузка и ВЫГРУЗКА скрипта... digitalbrain Events/DOM/Window 7 10.12.2012 14:17
Выгрузка данных (переменных?) из памяти. Jurasmi Общие вопросы Javascript 5 31.12.2010 09:31
Утечки памяти: как сделать ? Draeden Events/DOM/Window 10 30.08.2009 18:16