Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122

Localstorage как способ ускорения приложения

29.10.2019, 11:39. Показов 879. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Скажем, у нас типичное приложение, которые получает некие данные от АПИ.
Эти данные на серваке API обновляются раз в сутки. Скажем, в полночь.

Что если мы будем их сохранять в localStorage (я использую redux-persist, но сути это, по идее, не меняет).

Заходит клиент с утра, скачивает свежие данные в localstorage.
если он вечером снова заходит в приложение - то уже не придется слать запрос на сервак, т.к. свежие данные есть в local-stirage.

Вопрос в том, как это влияет на производительность?
Localstorage-операции вроде не очень быстрые.
Но, наверно, это выгодней, чем постоянно слать запросы на сервак за теми же данными?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2019, 11:39
Ответы с готовыми решениями:

Как построить график скорости, ускорения, тангенциального ускорения по времени в двумерной плоскости?
В архиве расписана задача

Найти модуль скорости; модуль тангенциального ускорения; модуль нормального ускорения; модуль полного ускорения
1. Материальная точка движется по плоскости. Движение точки в векторном виде описывается уравнением r(t)=i * A * t^3 + j * B * t (r —...

Найти ускорения грузов и угловые ускорения блоков
Добрый день, господа. Прошу помочь в решении данной задачи, интересуют два пункта: 6 и 8, остальные (по которым есть методичка с примерами...

6
27 / 22 / 6
Регистрация: 13.12.2012
Сообщений: 159
29.10.2019, 12:30
У меня сразу вопрос - как ваше приложение будет узнавать когда нужно сходить и обновить localStorage, а когда можно это не делать?

Добавлено через 11 минут
Вообще вопрос интересный, но забегая наперед, не уверен что такой финт даст заметный прирост с точки зрения ощущений юзера, даже почти уверен, что и не даст.
0
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
29.10.2019, 13:01  [ТС]
drmedus, например вот так:
Есть API, данные на нём обновляются раз в сутки в полночь.
Когда мы фетчим данные от API - то еще записываем в хранилище timestamp.
Соответственно, при заходе юзера сравниваем текущее время и timestamp.

если заморочиться - можно при заходе юзера включать таймер.
На случай - если он зайдет в 23-55, просидит в приложении до 00-15, а данные API обновляются в 00-00.
Тогда при срабатывании таймера можно выводить сообщение с предложением зафетчить свежие данные.

правильно ли я думаю, что любые вычисления на стороне клиента (если мы не говорим об ОЧЕНЬ больших объемах данных) будут быстрее, чем обращение к API?
0
27 / 22 / 6
Регистрация: 13.12.2012
Сообщений: 159
29.10.2019, 14:53
Ну прямо отвечая на вопрос - в целом да. Но по моему мнению, ваш вопрос некорректно поставлен. Ну в том плане, что смотря что требуется и смотря чего добиваться. Если вам важно ну вот нунедайбох сделать лишний запрос к апи, то да - храните локально на домене. Но локальное хранение автоматически подразумевает некий дополнительный функционал по обеспечению синхронизации и контролю консистентности. И вот тут вопрос - это прям действительно зачем-то нужно? При загрузке приложения совершенно нормально сделать запрос на апи и попросить инфу.... даже если эта инфа не поменялась от предыдущей загрузки.
0
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
29.10.2019, 15:05  [ТС]
мой вопрос был отчасти абстрактный.

Вот, скажем, у нас стоит задача, чтобы приложение работало как можно быстрее (прям вот каждый маленький прирост - это плюс)
Может ли хранение в localstorage и исключение ненужных запросов к API - быть одним из способов этого добиться?

Если отбросить вопрос про сложность имплементации)
0
27 / 22 / 6
Регистрация: 13.12.2012
Сообщений: 159
29.10.2019, 15:46
ну видимо да
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
30.10.2019, 00:02
Идея интересная, но правильней было бы решать её с помощью сервис воркера (гуглите service worker cache). Так же не стоит забывать о разнице между клиентским и серверным временем, а так же о времени обновления этих ваших данных в полночь (уверен, обновляются эти данные не моментально и есть риск закешировать не успевшие обновиться данные еще на сутки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2019, 00:02
Помогаю со студенческими работами здесь

Способ реализации приложения
Допустим мне нужно реализовать что-то вроде Paint (то есть пиксельную рисовалку), но при этом размеры каждого "пикселя" сами по...

Способ получения данных из другого приложения
Добрый день, необходимо получать данные из другого приложения(не моего). Данные располагаются в таблице SysListView32. Я знаю два способа...

Как записать в localStorage
Нужен функционал что-то по типу корзины магазина. Изначально в цикле выводится список из БД: <table width="590"...

Как выводить localStorage в div
Первая страница: <html> <body> <div class="FormTitle"> Ваш номер </div> <div class="FormControl"> <input...

Как объединить localstorage и cookie?
Всем привет! Надо проверить, есть ли куки name, если нет, то проверить есть ли такой localstorage, если оба нету, то создать и там и там. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru