#cordova #indexeddb #in-memory #lokijs #loki
#cordova #indexeddb #в памяти #lokijs #локи
Вопрос:
Я искал библиотеку-оболочку для IndexedDB, которая может хранить данные.
(Конкретно используется для приложения cordova на JavaScript, но оно также может работать в браузере)
Я нашел LokiJS, который кажется осуществимым. Однако LokiJS говорит, что это:
Хранилище данных JavaScript в памяти с сохраняемостью
Но я не понимаю, что означает «в памяти». Я попытался погуглить, оглядываясь по сторонам, но не смог найти краткого объяснения…
Чем индексируемая база данных «в памяти» отличается от обычной IndexedDB?
Комментарии:
1. В памяти означает, что она не сохранена на диске. это означает, что это длится только до тех пор, пока оно загружено.
2. @Josh это странно, если «в памяти» означает «не сохраняется», что означает «в памяти с сохранением»? o_O Основываясь на вашей информации, я бы почувствовал, что они противоречат самим себе …? Или я ошибаюсь. 🙃
3. @Josh (и mesqueeb) в памяти означает, что все данные загружаются в память и запрашиваются из памяти. Сохранение на диске фактически не связано. LokiJS обеспечивает сохраняемость, которая позволяет вам восстанавливать состояние между сеансами или в случае ошибки / сбоя. Традиционные базы данных сохраняют данные на диск и запрашивают файлы для возврата данных (они используют память для некоторого уровня кэширования запросов). Ценность LokiJS заключается в том, как вы можете запрашивать данные, но он может использовать IndexedDB в качестве механизма сохранения.
4. @JoeMinichino большое спасибо за ваш комментарий!! Я не ожидал увидеть вас здесь 😃. Я действительно ценю то, что вы сделали с LokiJS.
5. @mesqueeb спасибо! удачи в вашей работе!
Ответ №1:
LokiJS — это база данных в памяти, что означает, что она позволит вам загружать, запрашивать и т.д. Все ваши данные в памяти. Поскольку она написана на Javascript, она будет работать в нескольких средах, внутри вашего браузера, внутри приложения NodeJS, внутри приложения Cordova и т.д.
Если вы используете это внутри приложения браузера, оно может использовать localstorage или IndexedDB для хранения данных.
Если вы используете это внутри приложения NodeJS, оно может использовать файловую систему или другую базу данных (MySQL, mssql и т.д.) Для хранения данных.
Если вы используете это внутри приложения Cordova, оно может использовать SQLite для хранения данных.
В принципе, в зависимости от того, где вы запускаете свое приложение и какие варианты хранения доступны на этой платформе, оно будет использовать это для сохранения данных.
Вы можете посмотреть здесь, чтобы увидеть различные адаптеры, доступные для хранения данных на разных платформах-
Ответ №2:
вы также можете проверить PouchDB
https://github.com/pouchdb/pouchdb
которая имеет двойные звезды и вилки, чем Locki.js и, похоже, делает то же самое.