web-dev-qa-db-ja.com

PhoneGapはどのデータベースを使用し、サイズの制限は何ですか?

LocalStorage、indexedDB、およびWebSQLを抽象化するHTML5データベースを作成しました。ストレートHTML5を使用すると、データベースオプションは次のようになります。

  • IE10-indexedDB-最大1GB
  • FireFox-indexedDB-無制限
  • Safari-WebSQL-最大50MB
  • Chrome-IndexedDB(またはWeb SQL)-無制限(HTML5 Quota APIで ref1ref2 =)
  • Opera-WebSQL(webkitに切り替えるまで?)-無制限

PhoneGapまたはQuota APIを使用して最大データベースサイズを拡張したいと思います。 PhoneGapのドキュメントから、現在の PhoneGapデータベースecosphere は次のようになっています。

  • WebSQL-Android、Blackberry、iPhone、およびwebOS
  • localStorage-Windows Phone 7
  • indexedDB- Windows Phone 8 そして、indexedDBはどこでも利用可能ですが、WebSQLは利用できません。

PhoneGap SqlLiteプラグインもあります。 iOSAndroidWindows Phone 8 +


質問1-PhoneGapが使用するデータベースの正確な理解はありますか?

質問2-特定のタイプのPhoneGapデータベースが保存するデータ量に関する確固たるドキュメントはありますか? *ブラウザデータベースの実装ではなく、PhoneGapデータベースの場合。

質問3-PhoneGapは Webストレージ標準 に準拠する計画があり、それによりindexedDBを支持してWebSQLをドロップしますか?その場合、indexedDBへの切り替えが行われた後でも、既存のWebSQLコードを(PhoneGap-polyfillに組み込まれた方法で)使用できますか?

質問4-データベースサイズが制限され、PhoneGapまたはQuota APIで拡張できないが、ファイルシステムへのアクセスが可能な場合「余分な」データをデバイスのファイルシステムまたはSDカードに保存できると想定するのは妥当ですか?

67
user1873073

PhoneGapが使用するデータベースの正確な理解はありますか?

はい、そうです。 PhoneGapは、LocalStorage、SessionStorage、またはSQLiteデータベースを使用できます。また、代わりにPhoneGapを使用して、プラグインを介してデバイスネイティブクラスに接続し、ネイティブクラスデータを渡して、デバイスに保存することもできます。

特定のタイプのPhoneGapデータベースが保存するデータの量に関する確固たるドキュメントはありますか?ブラウザデータベースの実装ではなく、PhoneGapデータベースの場合。

  1. LocalStorage :: 10MB
  2. SessionStorage :: 10MB
  3. SQLiteデータベース:: 50MB-80MB(デバイスに依存)
  4. プラグインコールを使用したネイティブデータベース::無制限のデータ量
  5. IndexedDB :: 5MB。まだ存在しています。しかし、非常にバグが多い、 ここで実行するデバイス/ OSのリストがあります

PhoneGapはWeb Storage標準に準拠する計画があり、それによりindexedDBを支持してWebSQLをドロップしますか?その場合、indexedDBへの切り替えが行われた後でも、既存のWebSQLコードを(PhoneGap-polyfillに組み込まれた方法で)使用できますか?

WebSQLは徐々に廃止されています。その代替はIndexedDBまたはSQLiteです。ただし、最適なオプションは、SQLiteまたはネイティブデータベース(iOSのコアデータなど)です。

データベースサイズが制限されており、PhoneGapまたはQuota APIで拡張できないが、ファイルシステムへのアクセスは利用できる状況では、「余分な」データをデバイスのファイルシステムまたはSDに保存できると想定するのは合理的ですかカード?

それは間違いなく可能です。

  • On Androidデータベースの場所を指定できるため、外部データベースにデータをプッシュできます。
  • IOSでは、ネイティブデータベースコールを使用してCoreDataにデータを保存できます。外部メモリはありません。
  • すべてのOSのすべての場合において、テキストファイルなどのフラットなデータベースファイルを作成し、データをキーと値のリストに保存し、それらを最初の実行時にアプリに取り込むことができます。この場合、メモリ管理に注意してください。

my answer に、SQLiteおよびLocalStorageデータベースのコーディングを行う方法の説明を追加しました。

95
SashaZd

Android 4.0.4タブレットでテストを実行できました。WebSQL(db.changeVersionをサポートしていない古いバージョンのWebSQL)を使用しており、満杯にすることができました。ハードドライブ全体(データベースで12GB)他のデバイスやSDカードの動作については知りません。

enter image description here

6
user1873073

IndexedDB-

  • 多くの種類のモバイルOSおよびバージョンと互換性がありません
  • 非常に特定のバージョンのモバイルOSとのみ互換性があります
  • 開発者は、IndexedDBでSQLを使用できません。 SQL文はSQLiteおよびWebSQLで使用できます
  • ほとんどの開発者は、できる限りIndexedDBの使用を積極的に避けています。

WebSQL-

  • W3Cによって非推奨になりました。つまり、メンテナンスも開発もされなくなりました。
  • モバイルアプリケーションをGoogle Android and Apple iOS

SQLite-

  • Googleから賞を受賞しました
  • SQLiteには公式Webサイトがあります。 IndexedDBとWebSQLは
  • Googleでは、SQLiteは180万件の結果を返します。 WebSQLは700K未満の結果を返し、IndexedDBは282Kの結果を返します。
  • 開発者は、SQLiteで一般的なSQLステートメントを使用できます。

SQLiteのクイックチュートリアルが必要な場合

Android and Phonegap を使用したSQLiteデータベースのストレージ

3
KershawRocks