passshift
@passshift
php, js, html5, css

В каким случаях следует использовать локальное хранилище?

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

Решил разобраться с этим инструментом, подумал, что возможно он может пригодиться...

Из прочитанного за вечер, понял, что логично и правильно использовать Локальное хранилище (ЛХ) для хранения постоянных данных, которые не меняются или меняются редко. В моем случае это может быть информация о юзере.

Проект на php: в основном "родительском" контроллере делается запрос к БД на получение основных данных о юзере, ответ получаю в виде массива, делаю его глобальным, далее использую в видах и других контроллерах. Есть вариант сохранить этот массив в ЛХ и затем использовать на страницах, но зачем мне это? :)

Ведь проще и надежнее при нужде прописать: (не потеряется и будет всегда отображено)

<div id="user">
<?= $user->name ?>
</div>


чем

var $user = document.getElementById('user');
$user.innerHTML = localStorage.getItem('user.name')


Или я чего-то не понимаю? То же касается и настроек аккаунта (каких-то опций сайта):

К примеру юзер настроил под себя уровень громкости на сайте, выбрал шаблон, язык, часовой пояс ну что там еще можно выбрать... допустим мы сохранили это в ЛХ, через какое-то время юзер почистил историю браузера, заходит в Личный кабинет на сайте и видит, что все сбросилось... а если бы мы по-старинке хранили все на сервере, то такого бы не случилось...

Так когда же по истине логично, правильно и реально удобно использовать ЛХ? Ведь в любом случае любые данные в случае необходимости на стороне сервера при нужде проверяются, дак почему бы не передать их в вид без использования ЛХ?
  • Вопрос задан
  • 663 просмотра
Решения вопроса 3
Outoverlay
@Outoverlay
Данные которые не меняются - хранятся на сервере, в бд, но никак не на клиенте.
Это не безопасно. Ведь очистив хранилище, пользователь останется без информации.
Или подменив информацию...
Обычно там храниться, последняя информация. То что, изменяет пользователь постоянно.
Отступы прокрутки. Количество посещений пользователя за сессию и т.д.
Это удобнее cookie, так как localStorage общается между вкладками.
Ответ написан
rpsv
@rpsv
делай либо хорошо, либо никак
Смысла как мне кажется хранить данные юзера в локальной памяти нет, на это есть куки и сессия на стороне сервера. Вообще каждый тип хранилища нужен для своих данных.

На примере магазина:
  • куки - данные о юзере, которые дергаются для проверки авторизации;
  • база - хранит настройки/данные пользователя (например, его адрес доставки, телефон, контакты и др. редко меняющаяся и часто нужная инфа)
  • память браузера - список просмотренных товаров, корзина пользователя, товары для сравнения (данные которые нужны юзеру вот только сейчас).


Кстати про просмотренные товары можно на каждом хите отправлять в базу на сервер чтобы была дальнейшая возможность их обработки.

Панацеи нет в принципе, для каждой задачи есть свое решение!
Ответ написан
khipster
@khipster
Всё зависит от проекта. Если нет регистрации и сайт супер-бупер интерактивный всё делает без перезагрузки и сплошными аяксами, да ещё и с текстом работает активно, тогда localStorage незаменим.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы