Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Улучшения работы с памятью в разрезе видов #639

Open
chestozo opened this issue Feb 6, 2017 · 4 comments

Comments

@chestozo
Copy link
Member

chestozo commented Feb 6, 2017

По следам #284 #569

Хочется механизм чистки памяти от видов.
Про модели - тоже хочется, но пока совсем не понятно, как. Про виды есть более менее логика.

Какие виды можно чистить (варианты логики):

  • общая логика на лимит видов в боксе (как описано в Скрытие видов vs удаление из DOM #284): оставлять в боксе не больше N видов, удалять самые старые
  • чистить все "старые" виды: в декларации вида указано числовое свойство .lifetime, если после скрытия вида прошло больше времени - можно чистить
  • чистить все виды с учётом "логики": в декларации вида указана функция .lifetime, где описаны правила, когда чистить вид.

В какой момент можно чистить виды:

  • во время скрытия видов в боксе
  • есть вариант вызывать destroy через setTimeout, но это опасно, потому как можно оказаться в середине ns.Update
@bt4R9
Copy link
Contributor

bt4R9 commented Feb 6, 2017

чистить все "старые" виды: в декларации вида указано числовое свойство .lifetime, если после скрытия прошло больше времени - можно чистить

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

@chestozo
Copy link
Member Author

chestozo commented Feb 6, 2017

"Обнуление" пока кажется нужно только после показа.
Остальные штуки не так важны - если вид когда-то будет показан - мы его отрендерим с нуля и учтём все изменившиеся данные (такой реакт для бедных ;).

Вообще идея с lifetime такая, что у вида будет ещё hideTimestamp, который будет сбрасываться на show и снова устанавливаться на hide. И проверка будет типа Date.now() - this.hideTimestamp > this.lifetime.

@chestozo
Copy link
Member Author

chestozo commented Feb 6, 2017

@vitkarpov

@vitkarpov
Copy link
Member

Лайк!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants