@alexjet73

Имеет ли смысл с помощью javascript скрывать часть элементов DOM для оптимизации мобильного приложения?

Здравствуйте.

Например у меня есть веб-приложение под мобильное устройство. Есть активити(окна) которые при необходимости появляются на экране выходя из невидимой области с анимацией.

Такой вопрос: В эти активити часто подгружаются различные анимации гиф, картинки, видео - причём если пользователь прокручивал ленту, то их кол-во может быть достаточно большое.

Есть ли смысл после закрытия активити не просто его скрывать за пределы видимости WebView, но и очищать блок div в котором находится контент с гиф, картинками и видео - помещая весь html в переменную JS, а после возвращать из неё при открытии этого окна пользователем?

Или при скрытии элементов из области видимости, браузер сам их полностью может игнорировать и не будет нагружать ими память и процессор клиента?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Тут вам нужно провести исследование, так как есть много нюансов
Например:
Браузер может самостоятельно прекращать обработку тех узлов которые он определяет как "не отображаемые". Но Определит ли браузер узел как "не отображаемый" зависит от ваших стилей.

Узлы которые пользователь не видит, стоит удалять из DOM чтобы освободить ресурсы клиента. Но если у вас есть необходимость в быстром восстановлении узла, и вы будете хранить его html в переменной JS то тут не понятно где будет больше затрат.

Насколько я понимаю, у вас что-то вроде ленты активностей? Тогда можно сделать так: Один контейнер, в котором отображаются любые активити. При чем, каждая новая открытая заменяет собой предыдущую. Так, все старые узлы будут удаляться из DOM, а новые будут доступны для быстрого просмотра, если пользователь закроет активити и сразу захочет открыть её снова.
Ответ написан
HistoryART
@HistoryART
Молодой и дерзкий
Скрытие элементов наоборот замедляет процесс т.к. они обрабатываются, но не отображаются, лучше в таком случае вырезать их или вставлять по мере необходимости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Sveak Барнаул
от 50 000 ₽
eGamings Воронеж
от 80 000 до 110 000 ₽
Aviakassa.ru Севастополь
от 80 000 до 200 000 ₽
04 апр. 2020, в 13:12
25000 руб./за проект
04 апр. 2020, в 13:09
2000 руб./за проект
04 апр. 2020, в 11:34
3000 руб./за проект