Я создал / управляю интерфейсом SPA (одностраничного приложения).Он не использует современные фреймворки, такие как VueJS или React ... Он использует AJAX.
Это пользовательский интерфейс, который загружает части страниц через ajax.Когда вы щелкаете элемент для редактирования, открывается окно на странице или модальное окно, и все HTML и JS-зависимости этой конкретной страницы из AJAX внедряются в страницу.Когда загружается новая страница, существующий html заменяется (я делаю jQuery для большинства реальных функций) на html(new_content)
Потенциальная проблема:
Внутриэти страницы, загруженные ajax, он запускает javascript, например, «прикрепить к этой кнопке при нажатии», «инициирует класс данных» для контента, загружаемого в таблицы и т. д. Когда загружается другая страница, он заменяет существующий контент из предыдущегоновая страница снова загружает свой собственный JS.
1) Уникальные переменные , загруженные со страниц Ajax, все еще существуют даже после загрузки новой страницы из ajax.(глядя на переменные в консоли видно, что они существуют), я предполагаю, что загружаемые переменные с тем же именем заменяются новыми значениями.
2) Добавляемые функции / классы по-прежнемувстроенный в память даже после того, как я попросил его удалить все
Другой пример , если я запустил таймер setInterval()
, после загрузки новой страницы и замены существующего содержимого,setInterval все еще работает.
Что вы думаете здесь?Если пользователь не перезагружает реальную страницу с помощью обновления браузера, то загрузка этих страниц Ajax снова и снова приведет к истощению памяти устройства клиента?
Есть ли способ сохранить чистую таблицу после загрузки каждой страницы, чтобы существующие переменные, загруженные в память, были удалены? Или я должен убедиться, что каждая загружаемая страница обернута в анонимную функциючто очищается после загрузки каждой страницы?