Как грамотно объединить HTML скелет с JS классом в один интерактивный объект который можно динамически загружать/удалять? Сейчас оно уже работает но подозреваю что это можно реализовать как то грамотнее.
На сервер загружается JS файл с кучей классов (каждый класс написан для определенного HTML скелета (какой нибудь виджет - график, калькулятор, чат...)).
Затем динамически в document страницы добавляется HTML скелет с уникальным ID и через script создаю экземпляр класса который привязываю к загруженному HTML скелету. (Если скелет можно собрать то он собирается конструктором класса... но иногда данные приходят уже с сервера и необходимо работать с готовым скелетом).
Если удалить скелет или вместо него подгрузить другой, экземпляр объекта класса скелета у которого пропал скелет удаляется.
Мне не нравится как сейчас работает самоликвидация экземпляра объекта... а точнее проверка на отсутствие скелета.
Сейчас самоликвидация запускается если возникает ошибка обращения к скелету + таймер-пустышка который получает скелет (на случай если JS объект ждет событий от элемента скелета которого уже нет)

21 Авг 2019 в 06:58
256 +2
0
Ответы
1

.

Для более грамотной реализации я бы порекомендовал использовать паттерн наблюдателя (Observer pattern) для отслеживания событий, связанных с удалением или изменением скелета. Вы можете создать наблюдателя, который будет следить за этими событиями и автоматически удалять объект класса при необходимости.

Для этого вам нужно будет добавить методы в классы скелетов, которые будут вызываться при удалении или изменении скелета. Далее, в самом классе объекта вы можете добавить методы для подписки на события удаления и изменения скелета, и автоматически удалять себя при получении соответствующих событий.

Таким образом, вы сможете избежать использования таймеров и дополнительной логики для самоликвидации объектов, и сделать ваш код более чистым и модульным.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир