2017-02-13 20 views
3

Я разрабатываю одностраничное приложение, которое полагается на PouchDB для хранения состояния, когда пользователь входит в систему с приложением. Мое состояние приложения состоит из пользовательских данных, таких как адрес электронной почты, имя и т. Д.Удаление документов из PouchDB и сохранение их при выходе пользователя из системы или закрытии приложения

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

Каковы преимущества и недостатки хранения данных/документов в PouchDB/IndexedDB (по сравнению с его удалением), когда пользователь подписывает или закрывает и покидает SPA?

Другими словами, что может быть примером использования данных для хранения данных и использования случаев для его удаления при выходе пользователя из системы?

+0

Я нашел интересные указатели здесь: https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/ – balteo

+1

Спасибо большое всем вам. Оба ответа очень актуальны. Если бы я согласился с ними, я бы сделал это. :-) – balteo

ответ

1

Типичные случаи использования удаления данных, когда пользователь выходит из системы может быть:

  • Удаление маркеров аутентификации: Когда пользователь выходит из системы, любой маркер аутентификации становятся недействительными. Нет необходимости хранить их больше.
  • Удаление личных или конфиденциальных данных: PouchDB хранит данные в IndexedDB или WebSQL, в зависимости от используемого браузера. Как вы уже узнали, хранящиеся там данные доступны «через сеансы и вкладки/окна браузера» на определенном устройстве ». Source Поэтому вы хотите, чтобы личные или конфиденциальные данные были как можно короче.

Примечание: В лучшем случае вам не нужно хранить данные, как указано выше, в PouchDB, но это не относится к делу.

Прецеденты для хранения данных после выхода из:

  • Keep что-нибудь еще: Ну, это зависит от вашего приложения, но если ваши данные не чувствительны, почему бы не хранить? Создание автономного первого приложения связано с тем, что вам не нужно извлекать все данные из удаленной базы данных, поэтому ... Только ограничение - это хранение устройства, на котором вы работаете, и доброжелательность пользователя. Конечно, это снова зависит от вашего приложения, но вы можете убедиться, что вы не используете мегабайты памяти для простого приложения.
1

В основном это зависит от удобства пользователя и свежести данных.

PouchDB предназначен для того, чтобы приложение могло локально хранить данные и синхронизировать их с бэкэнд-системой. (CouchDB и Couchbase поддерживаются в настоящее время как примеры серверных серверов.) Он также разработан, чтобы позволить нескольким клиентам вносить изменения.

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

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

Основные компромиссы:

Keep

  • приложение по-прежнему может обеспечивать полезную функциональность без подключения к сети
  • Быстрее времени отклика
  • Снизить передачу данных по сети (во избежание повторной передачи всех данных для каждый вызов)
  • Возможно, необходимо обратить внимание на разрешение конфликтов
  • Может хранить избыточные объемы данных локально

Delete/Purge

  • App не может осмысленно работать форума
  • App необходимо, чтобы гарантировать пользователям только видит обновленные данные
  • App использует недопустимое количество хранения

Note PouchDB - это база данных NoSQL. Базы данных NoSQL не могут обеспечить соответствие требованиям ACID. Это означает, что если ваше приложение требует, чтобы изменения данных были атомарными (транзакционными), это неправильное решение.

Существует множество вариантов использования, где в конечном итоге согласованные данные в порядке. Это может быть так же просто, как наличие единого клиента, а бэкэнд-система «соглашается» с тем, что правильно. Или это может быть сложная система с несколькими писателями, которые вносят изменения, которые в конечном итоге распространяются и интегрируются.

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

Как последнее замечание, вам может потребоваться найти «offline first» в качестве подхода к разработке приложений.

+0

Для интересной демонстрации ценности создания приложения для «в автономном режиме» взгляните на это видео (мобильное приложение, построенное с помощью Couchbase, которое предоставляет некоторые аналогичные преимущества для PouchDB): https://www.youtube .com/смотреть? v = tYolHnbCavA – Hod