Выгрузка "динамических" скриптов из памяти браузера
Добрый день!
Сайт динамический (много разделов), т.е. работает без перезагрузки страницы, при входе в раздел динамически подгружаются скрипты типа: <script id="js_section1" src="/files/section1.js" type="text/javascript"></script> При переходе в другой раздел - эти скрипты удаляются по их ID (id="js_section1") и подгружаются новые. Работает, всё нормально фукнции в скрипте отрабатывают нормально, только есть делема, если в скрипте есть событие на документ: $(document).on('click'..... То браузер оставляет его в памяти, даже если из раздела вышли и скрипт удалён со страницы, и зашли туда вновь и скрипт снова подгружен, то событие дублируется и срабатывает уже дважды (т.е. "тыкнул" мышкой, а браузер воспринимает уже не 1, а N кликов). Как можно "выгрузить" из памяти это событие или какие можно придумать другие решения? |
Удаление тега скрипт не несёт никакого смысла. Тег скрипт ответственен только за загрузку файла, если файл загружен и отработал - никакие манипуляции с ним ни на что не влияют.
Таким образов всё, что наделал первый скрипт, надо вычищать вручную (on снимать off итд). Скрипт должен изначально предусматривать необходимые методы как для инициаоизации так и для разрушения. |
Цитата:
И ещё вопрос, если не удалять тег скрипта, со временем работы, и если пройтись по всем разделам загрузятся все. Большую нагрузку на браузер несут подгруженные скрипты? |
На процессор несут нагрузку только те скрипт, которые что-то делают, на память только те данные на которые есть хотя бы одна ссылка.
Если при "переходе меж страницами" вы качественно всё подчищаете - то нагрузки нет вообще никакой. Если же где-то в левых переменных висят куски старых данных, а на клик по странице срабатывает сто обработчиков делающих одно и то же - тогда да, тоска и печаль. |
Цитата:
|
Часовой пояс GMT +3, время: 23:30. |