Javascript.RU

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

Еще раз про очистку массива в js(интересный случай)
Добрый день, уважаемые новички и ниндзи!
Почти каждый виджет в моем проекте, навешен его реализующий класс, во время рендеринга виджетов менеджер объектов содержащий массив экземпляров классов виджетов, этот массив чистит, и заполняет заново у меня это прописано вот так:
this.widgets = []; // далее в цикле по селекторам создает через new для блоков виджетов функции их обрабатывающие

В одном виджете я заметил, что при нажатии на кнопку, после которой происходит переинициализация массива widgets действие при следующем клике(n - ном клике) выполяется 2^(n-1) раз, пофиксил отвязкой handler'а перед вызовом функции реинициализации менеджера, но выходит, что объекты-функции из массива не удаляются, а это ест память, как это объяснить и исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2015, 09:47
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

Сейчас протестил, и
this.widgets.length = 0

не помогает
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2015, 09:54
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
далее в цикле по селекторам создает через new для блоков виджетов функции их обрабатывающие
Покажи подробней

И зачем тебе вообще этот массив?

Последний раз редактировалось Erolast, 12.02.2015 в 10:00.
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2015, 10:00
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

Массив экземпляров объектов функции виджетов, которые содержат обработчики событий на элементах каждого виджета в себе(на странице может быть несеолько виджжетов одного типа)
Ответить с цитированием
  #5 (permalink)  
Старый 12.02.2015, 10:01
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Массив экземпляров объектов функции виджетов
Выражайся нормально. Что за объекты функций? Что за экземпляры объектов?
Цитата:
, которые содержат обработчики событий на элементах каждого виджета в себе(на странице может быть несеолько виджжетов одного типа)
Зачем?
Ответить с цитированием
  #6 (permalink)  
Старый 12.02.2015, 10:02
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

даже проход с удалением и реинициализацией нулем не помог
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2015, 10:05
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

Цитата:
Почти на каждый виджет в моем проекте, навешен его реализующий класс, во время рендеринга виджетов менеджер объектов содержащий массив экземпляров классов виджетов, этот массив чистит, и заполняет заново
все итак уже объяснил вроде
Ответить с цитированием
  #8 (permalink)  
Старый 12.02.2015, 10:05
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

Цитата:
Почти каждый виджет в моем проекте, навешен его реализующий класс, во время рендеринга виджетов менеджер объектов содержащий массив экземпляров классов виджетов, этот массив чистит, и заполняет заново
все итак уже объяснил вроде
Ответить с цитированием
  #9 (permalink)  
Старый 12.02.2015, 10:10
Интересующийся
Отправить личное сообщение для OlegUP Посмотреть профиль Найти все сообщения от OlegUP
 
Регистрация: 12.02.2015
Сообщений: 20

Какая разница зачем и как сделано, сделано все исходя из требований к проге, проще говория есть массив объектов которые содержат методы для работы с виджетом, вопрос в другом, почему после чистки массива некоторые обработчики срабатывают 2, 4, 8, 16... раз
Ответить с цитированием
  #10 (permalink)  
Старый 12.02.2015, 10:10
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
все итак уже объяснил вроде
Нет, ты объяснил, какие с этим массивом производятся манипуляции, но ты не объяснил, зачем он вообще нужен.

Цитата:
есть массив объектов которые содержат методы для работы с виджетом
Еще раз - зачем?
Цитата:
Какая разница зачем и как сделано
Такая, что все через жопу сделано.

Цитата:
вопрос в другом, почему после чистки массива некоторые обработчики срабатывают 2
Потому что, очевидно, с самих элементов ты ссылки на обработчики не снимаешь.

Цитата:
Цитата:
далее в цикле по селекторам создает через new для блоков виджетов функции их обрабатывающие
Покажи подробней

Последний раз редактировалось Erolast, 12.02.2015 в 10:15.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще раз о перелистывании digital_sword jQuery 14 27.05.2010 22:20
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37