yandex-ui / noscript

Noscript: JavaScript MVC Framework for building SPA
http://yandex-ui.github.io/noscript/
MIT License
34 stars 22 forks source link

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

Open chestozo opened 7 years ago

chestozo commented 7 years ago

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

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

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

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

bt4R9 commented 7 years ago

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

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

chestozo commented 7 years ago

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

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

chestozo commented 7 years ago

@vitkarpov

vitkarpov commented 7 years ago

Лайк!