Предотвратить потерю данных при обновлении / потере соединения на Angular - PullRequest
0 голосов
/ 07 февраля 2019

В Angular при обновлении страницы вы теряете прогресс и переменные всего приложения.Каков лучший способ предотвратить эту потерю?

Я знаю о сеансовом / локальном хранилище, которым мы пользуемся большую часть времени.Но я не могу думать, что это хорошая вещь для использования, потому что:

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

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

1 Ответ

0 голосов
/ 07 февраля 2019

Существует 4 основных способа хранения данных на стороне клиента

1) В качестве параметров URL

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

2) В IndexedDB

Лучше, чем localStorage, действия являются асинхронными.Сложнее манипулировать напрямую, но можно использовать библиотеки, которые предоставляют интерфейс, аналогичный localStorage

3) localStorage / sessionStorage

Простое хранилище значений ключей.Простота в использовании и обновлении.Синхронный и блокирующий API.Максимальный размер может зависеть от браузера.Может использоваться для хранения данных.Рассмотрите возможность шифрования, если храните конфиденциальные данные (хотя и не рекомендуется для начала)

4) cookie

Только строки ограниченного размера должны будут сериализовать данные

Все библиотеки, которые вы используете, будут играть на этих 4 доступных базовых структурах.Best - относительный термин.Если вы не синхронизируете данные периодически с сервером (например, автоматически сохраняете) и повторно увлажняете пользовательский интерфейс при обновлении с данными сервера, вам придется выбирать на основе стратегии и данных

...