Задать вопрос
alexjet73
@alexjet73

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

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

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

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

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

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

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

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

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

Похожие вопросы