2

Я строй хром приложение, которое требует локального базы данных с стойких и , что в этом случае может быть либо IndexedDB или основного хранение объекта. У меня есть несколько вопросов, прежде чем я начну разрабатывать приложение:IndexedDB в Chrome App

  1. Возможно ли сохранить данные индексированного DB после установки Chrome-браузера Chrome и браузера Chrome?
  2. Если файл indexedDB/data persist можно найти и просмотреть?
  3. Если я могу найти, но не могу просмотреть его, возможно ли изменить местоположение файла indexedDB?
  4. Могу ли я хранить индексированный DB в файле, расположенном на рабочем столе или в любом другом месте?
+0

К этому моменту @Shourya, если вы хотите сохранить данные вне приложения, вы можете сохранить одну копию в приложении и использовать копию iframe, чтобы она сохранялась в веб-домене (подумайте, что iFrame или как он использует postMessage), таким образом вы можете «переместить» его. Но с точки зрения фактического БД в приложении нет, у вас нет доступа к нему вообще, только данные в таблицах. – joseeight

+0

@joseeight У меня нет возможности синхронизировать его с удаленным сервером/Google Drive/веб-сервером. –

+0

Я вижу, так что вы действительно пытаетесь сделать? Я много разбирался с хранилищем в Chrome и знаю, что вы не можете получить доступ к базе данных в виде файла. Но я не понимаю, почему вы все равно хотите это сделать. – joseeight

ответ

4

Если бы я имел эти требования, я вижу несколько вариантов, которые вы можете проводить

  1. Написать простую базу данных, поддержанные FileSystem API, и периодически блокировать базу данных и резервное копирование этого файла. Это было бы довольно круто, потому что я не знаю никого, кто реализовал простую базу данных, поддерживаемую FileSystem API, но я мог видеть, что она полезна для других целей.

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

  3. Просто напишите функции для экспорта из вашего indexedDB в некоторый формат в резервную копию и для импорта из резервной копии.

Все варианты кажутся довольно трудоемкими. Было бы здорово, если бы вы создали indexedDB, вы могли бы указать файл входа в файл HTML FileSystem для его возврата, и таким образом вам не нужно было бы делать 1 или 2.

Я согласен, что это похоже на довольно что индексированный DB довольно сложно выполнить резервное копирование.

+0

Вы хотите сказать, что я могу поместить indexedDB в файл? –

+0

Нет, но я говорю, что было бы здорово, если бы indexedDB был реализован таким образом. Однако это не входит в спецификацию. Можно было бы реализовать свою собственную базу данных, которая использует файл для хранения. – kzahel

+0

Должен ли я использовать API хранения, чтобы выталкивать данные indexedDB в массив и хранить его в файле, или есть лучший способ сделать это! –

0

В настоящее время я пытаюсь сделать то же самое. Я использую файловую систему Chrome Sync Api (http://goo.gl/5q8Z9M), но работает в некоторых случаях, когда мой файл (или его содержимое) удаляется. При таком подходе я пишу объект JSON. Надеюсь это поможет.

+0

У нас есть chrome.storage.sync, chrome.storage.local, indexedDB и WebSQL, которые устарели. из которых «синхронизация» является единственной, которую я тестировал, чтобы быть постоянным при повторной установке. Мне нужно было хранить большой объем данных, поэтому он оставил меня с «локальным», для которого хром не дает api для хранения объектов. это оставило меня без выбора, кроме как переносить мое приложение в Adobe AIR. Это была всего лишь копия-паста (port-to-AIR). –

+0

Хорошая точка, синхронизация позволяет сделать так много места. Моя первоначальная мысль заключалась в том, чтобы использовать Google-накопитель для хранения самих данных, чем отталкивать его оттуда. – c0d3rm0nk3y

0

Я пишу основное приложение только для браузера. В настоящий момент нет кода сервера. Поэтому у меня также есть требования к хранению. Но я не делаю резервную копию. Я рассматриваю pouchdb как решение: http://pouchdb.com/

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

http://pouchdb.com/faq.html#native_support

Хорошая вещь вы можете синхронизировать данные pouchdb с экземпляром сервера CouchDB.
http://pouchdb.com/api.html#replication

http://pouchdb.com/api.html#sync

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

http://pouchdb.com/api.html#batch_fetch

Я побежал бы результат через Gzip, прежде чем положить его в файловой системе.

Смежные вопросы