indexedDB в приложении Chrome
Я создаю приложение chrome, для которого требуется постоянная и локальная база данных, которая в данном случае может быть indexedDB или хранилищем базовых объектов. У меня есть несколько вопросов, прежде чем я начну разработку приложения:
- Можно ли сохранить данные indexedDB после деинсталляции приложения chrome и браузера chrome?
- Если файл / данные indexedDB сохраняются, я могу найти и просмотреть их?
- Если я могу найти, но не могу просмотреть его, можно ли изменить местоположение файла indexedDB?
- Могу ли я сохранить indexedDB в файле, расположенном на рабочем столе или в любом другом месте?
3 ответа
Если бы у меня были эти требования, я вижу несколько вариантов, которые вы могли бы использовать
Напишите простую базу данных, поддерживаемую FileSystem API, и периодически блокируйте базу данных и создавайте резервные копии этого файла. Это было бы здорово, потому что я не знаю никого, кто бы реализовал простую базу данных с поддержкой API FileSystem, но я мог бы увидеть, что она полезна для других целей.
Любые изменения в базе данных будут также вноситься в копию базы данных, хранящуюся на вашем сервере резервного копирования, и я буду писать функции, которые могут импортировать моментальные снимки из вашей резервной копии.
Просто напишите функции для экспорта из вашей indexedDB в какой-либо формат в резервную копию и для импорта из резервной копии.
Все варианты кажутся довольно трудоемкими. Было бы здорово, если бы при создании indexedDB вы могли указать файл записи API-интерфейса HTML FileSystem для его поддержки, и таким образом вам не пришлось бы делать 1 или 2.
Я согласен, что кажется упущением, что резервное копирование indexedDB довольно сложно.
Я пишу базовое приложение только для браузера. В настоящее время нет кода внутреннего сервера. Так что у меня тоже есть требования к хранению. Но я не делаю резервную копию. Я смотрю на pouchdb как на решение: http://pouchdb.com/
Пока все выглядит хорошо. Они также упоминают, что они будут хорошо работать с Google Apps.
Приятно то, что вы можете синхронизировать данные pouchdb с экземпляром сервера couchdb.
http://pouchdb.com/api.html
Если вы хотите сохранить приложение локальным для браузера без поддержки сервера, вы можете сделать резервную копию всей базы данных, используя пакетную выборку.
Я бы запустил результат через gzip, прежде чем поместить его в файловую систему.
Я сейчас пытаюсь сделать то же самое. Я использую Chrome Sync File System Api ( http://goo.gl/5q8Z9M), но сталкиваюсь с некоторыми случаями, когда мой файл (или его содержимое) удаляется. При таком подходе я пишу объект JSON. Надеюсь это поможет.