14

iOSアプリストアでリリースしたいHTML5アプリケーションを書いています。PhoneGapを使用するか、UIWebViewコントロールにラップされます。

アプリケーションのデータを保存するという点で、どのようなオプションがあるのか​​少し混乱しています。

このタイプのアプリケーションにアプリケーションデータを格納するのに適したlocalStorage、WebSQL、またはIndexedDBテクノロジを使用していますか?JSONとXMLデータを保存します。

ユーザーが誤ってこのデータを削除すると、作業内容が失われることに注意してください。これは明らかに私が望んでいないことです。

このリスクを軽減する唯一の実際の方法は、データを「クラウド」または他のオンラインシステムに同期することであると理解しています。これは将来のリリースで実行できますが、現時点では実行できません。それが物事を行うための合理的な安定した方法である場合、最初はデータをローカルに保存したいだけです。

私が理解していることから、Cookieをクリアすると、ブラウザはすべてのlocalStorageデータもクリアします。ユーザーが偶然にそれをしているのを見ることができるので、それはそれを除外します。

WebSQLはかなり見栄えがします-ユーザーがiOSで誤ってWebSQLを削除することはできません。実際には、ブラウザの設定に移動して、データベースを手動で削除する必要があります。

しかし、WebSQLの欠点は、私が読んだことから、将来的にサポートされなくなる可能性があることです。

IndexedDBでは、そのデータがいつクリアされるかがわかりません。Cookieが削除されたときにも削除されますか、それともSafari設定の「データベース」オプションがこれを制御しますか?

IndexedDBは、将来的にWebSQLよりも優れたサポートを提供するため、より優れたソリューションですか?

私が気付いていない、より適切な他の解決策はありますか?

4

2 に答える 2

11

PhoneGap(またはAppMobi-私が働いている場所)でラップしている場合、データはそのアプリにセグメント化されています。ユーザーはSafariにアクセスして、ブラウザーのデータ/ Cookieをクリアし、アプリでそれを実行することはできません。彼らがそれを削除できる唯一の方法は、アプリを削除することです。

IndexedDBは利用できないと思います。Window.localStorageは(5メガですが、大きくなる可能性があると思います)、KVPシステムです。

私は彼らが数年間WebSQLを落とすのを見ません。HTML5仕様はまだ承認されていないため、状況が再び変わる可能性があります。

文字列を保存しているだけなので、複雑なデータセットがないように見えるため、さまざまなアダプタ(localStorage、WebSQLなど)を使用してデータを希望どおりに保存するLawnchairなどのライブラリを確認できます。

于 2011-10-13T20:00:53.290 に答える
7

localStorage(別名Webストレージ)およびWebSQLは、OperaMiniを除く現在のすべてのモバイルブラウザでサポートされています。

ただし、WebSQLは、2010年11月の時点で「デッド」と見なされています。仕様には、大きな太い「注意」ラベルが付いています。それは読む

このドキュメントはW3C勧告トラックにありましたが、仕様作業は停止しました。仕様は行き詰まりました。関心のあるすべての実装者は同じSQLバックエンド(Sqlite)を使用しましたが、標準化パスに沿って進むには、複数の独立した実装が必要です。

モバイルブラウザに関しては、IndexedDBは(2013年12月現在)Android 4.4でのみサポートされています(つまり、iOS Safari、Opera Mini / mobile、または広範なAndroidブラウザはサポートされていません)。

最新の互換性テーブルについては、caniuse.comを参照してください。

于 2011-11-30T01:24:42.320 に答える