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

Как избежать большего объема памяти на клиенте?

Есть приложение которое работает по api через ajax. Все данные приходят в браузер клиента и там с ними происходит работа. Если при полной выборки (все галочки и фильтры установлены) при открытие диспетчера задач в crome объём памяти на эту вкладку может вырост до 2гб.

На клиенте используется фреймворк Vue.js.

Какие советы и варианты решений могут быть? Есть ли какие-то инструмент контроля памяти?
  • Вопрос задан
  • 314 просмотров
Подписаться 2 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Vlad_IT
@Vlad_IT
Front-end разработчик
Если вам на клиент приходит 2гб памяти, и они используются, то как минимум, объем потребления памяти у вкладки будет 2гб. Есть смысл пересмотреть стратегию, и сделать парциальное получение определенных данных, например при помощи пагинации.
Если памяти приходит меньше, смотрите, чтобы нигде не весели ссылки на элементы неиспользуемых данных, иначе сборщик мусора их не очистит. Предлагаю посмотреть в инструментах разработчика хрома вкладку Memory, сделать снимок, и изучить, какие данные занимают много объема. Если же там данные будут отображены меньше, то смотрите вкладку Perfomance, скорее всего у вас много манипуляций с DOM - неграмотное удаление элементов (без очистки событий).
Ответ написан
jams
@jams
Веб-разработчик | PHP | WP | JS
Увы и ах, но я тоже столкнулся с такой проблемой, когда современные фреймворки потребляют много ресурсов. А что, если на стороне клиента старенький ПК, в котором крайне мало оперативной памяти... Все плюсы обработки на стороне клиента теряют смысл. Все таки лучше обрабатывать данные на сервере, а клиенту отдавать минимальные (в плане нагрузки на его железо) файлы.

Кстати, на днях работал в Google Ads, он написан на Ангуляре, там куча данных обрабатывается на стороне клиента. Так вот, у меня железо не слабое, но комп шумел прилично + сам сервис жутко зависал. Чую, мода на фреймы пройдет как только все соприкоснуться с подобными проблемами и старые-добрые серверные языки вернут свои позиции, отчасти сданные перед серверным JS.
Ответ написан
Ваш ответ на вопрос

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

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