Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768

Время жизни объекта

11.12.2022, 19:25. Показов 818. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть метод, который:
1. Создаёт ResizeObserver.
2. Создаёт для него анонимный метод-обработчик.
3. Запускает прослушивание событий.
4. Сохраняет ссылку на созданный экземпляр ResizeObserver в свойства того элемента, размеры которого отслеживаются.

Если этот 'divElement', который был передан в метод, в какой-то момент удаляется из DOM, то:
1. Нужно ли явным образом выполнять 'disconnect' для того ResizeObserver, для которого был выполнен метод 'observe' на этот элемент?
2. Удалится ли из памяти экземпляр ResizeObserver, сохранённый в 'divElement.resizeObserver'?

P.S.: и есть ли вообще какие-то очевидные ошибки в этом коде?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
window.subscribeResize = (divElement, eventTarget) => {
 
    divElement.resizeObserver = new ResizeObserver(function () {
        eventTarget.invokeMethodAsync('SizeChanged', divElement.clientWidth, divElement.clientHeight);
    });
 
    divElement.resizeObserver.observe(divElement);
};
 
window.unsubscribeResize = (divElement) => {
    divElement.resizeObserver.disconnect();
    divElement.resizeObserver = null;
};
Добавлено через 6 минут
Если сократить до такого, не будет ли каких-нибудь утечек памяти при удалении отслеживаемых элементов?
JavaScript
1
2
3
4
5
6
7
subscribeResize = (divElement, eventTarget) =>
    new ResizeObserver(() =>
        eventTarget.invokeMethodAsync(
            'SizeChanged',
            divElement.clientWidth,
            divElement.clientHeight))
        .observe(divElement);
Добавлено через 9 минут
И ещё отдельный вопрос - возможно ли как-то самостоятельно проконтролировать время жизни 'ResizeObserver'?

Т.е. вот сделал какой-то минимальный пример на базовом HTML+JS, добавил туда такой обработчик, потом по кнопке удалил элемент из дерева. Где/как увидеть, что созданный ранее экземпляр 'ResizeObserver' был остановлен и удалён из памяти?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2022, 19:25
Ответы с готовыми решениями:

Время жизни Куки
Добрый день, ребят! Подскажите пожалуйста, почему у меня не удаляется кука в хроме и мозиле? Причем в Яндекс.браузере работает как надо... ...

Как изменить время жизни cookie в angularJs
как или каким образом изменить время жизни cookie? ели я правлии поинмая там сотит ;expires=Thu, 01 Jan 1970 00:00:00 GMT и время жизни...

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

1
Эксперт .NET
 Аватар для Usaga
14311 / 9391 / 1355
Регистрация: 21.01.2016
Сообщений: 35,420
12.12.2022, 06:12
Цитата Сообщение от kotelok Посмотреть сообщение
2. Удалится ли из памяти экземпляр ResizeObserver, сохранённый в 'divElement.resizeObserver'?
Можно же в DevTools снять дамп кучи и посмотреть. По идее, насколько это видел я, ссылки на элемент DOM'а "слабые" и протухают с удалением элементов из этого DOM'а.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2022, 06:12
Помогаю со студенческими работами здесь

Время жизни временного объекта
std::ostringstream os; std::string* str = &os.str(); //временный объект "живёт" только в этом выражении ...

Время жизни static объекта
Приветствую, Что то я запутался с проклятым static, помогите. Дано: public class Main extends Activity{ public static...

Время жизни объекта класса
Всем привет! Вот возник у меня вопросс с ООП и разработкой больших программ. Большие ООП программы могут иметь много классов. Например...

Время жизни временного объекта
можно ли передать временный объект в функцию по ссылке? void f1(int & ); ..... int main() { f1(int());

Деструкторы и время жизни объекта
Вопрос 1 Дан класс Weather с отладочным выводом в конструкторе и деструкторе: class Weather { public: Weather(const string&...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru