2

私のアプリケーションは、webSQLを使用したクライアント側のデータベースストレージを使用して、ユーザーの情報を保存します。ブラウザがwebSQLから離れ始めていると聞きました。現在、Chrome、Safari、Operaのみがサポートしています。IEとFirefoxはwebSQLをサポートしていないため、ユーザーがこれらのブラウザーを使用している場合は、Cookieを使用して情報を保存しています。ただし、Cookieはあまり安全ではなく、大量のデータを保存することは困難です。私の質問は、すべてのブラウザがサポートしているjavascript APIに似た、より良いオプションはありますか?ありがとう。

4

2 に答える 2

3

IndexedDBは、オブジェクトベースのデータストアであるあなたにとってのオプションになると思います。現在Chromeでサポートされており、FirefoxとIE10も将来的にサポートする予定です。

http://html5-demos.appspot.com/static/html5storage/index.html#slide1をよりよく理解するには、次のプレゼンテーションを ご覧ください。

私の経験から、ブラウザの将来の変更のリスクを減らすためだけにラッパーライブラリを使用することをお勧めします。いくつかの人気のあるライブラリを以下に示します

  1. レミー・シャープによるストレージポリフィル
  2. Amplify.js HTML4ブラウザー(IE6を含む)のフォールバックを使用したHTML5APIのappendToによる
  3. RealStorage HTML5 APIは、API全体のサブセットです
  4. YUIチームによるYUI3CacheOffline
  5. Persistence.js 非同期Javascriptオブジェクト-データベースマッパー
  6. YDN-DBクロージャーライブラリの上に、IndexedDB、WebSql、localStorageビルド用の使いやすいデータベースラッパー。
于 2012-07-24T16:35:47.643 に答える
2

私は2、3年遅れていますが、この質問が出されてからのクライアント側のブラウザスペースの開発を考えると、2セントを追加すると思いました。

この質問がなされた時点では、IndexedDBが唯一の代替WebSQLでしたが、当時のサポートは不十分でした。今日でも前者は当てはまりますが、後者は当てはまりません。現在、すべての主要なブラウザベンダーがIndexedDBを実装しています。

IndexedDBが現時点でW3C標準化過程に残っている唯一のデータベースであることを考えると、ネイティブのクライアント側データベースに関する限り、これはほとんど唯一のオプションです。

ただし、IndexedDBに飛び込む前に、知っておくべきことがいくつかあります。1つは、非リレーショナルドキュメントストアであるため、SQLをネイティブにサポートしていないことです。2つ目は、そのAPIが...控えめに言っても扱いにくいということです。

これらのことを考えると、 BakedGoodsをチェックすることをお勧めします。これを使用すると、たとえば、1つ以上のデータ項目をIndexedDBデータベースに配置するのは次のように簡単です。

bakedGoods.set({
    data: [{key: "key1", value: "value1"}, {key: "key2", value: "value2"}],
    storageTypes: ["indexedDB"],
    function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});

もちろん、あなたがマゾヒストのような人なら、私の提案を無視して生のAPIを扱うことができます。しかし、私があなたに警告しなかったと言ってはいけません!

完全な透明性のために、BakedGoodsは本当にあなたによって維持されます:)。

于 2016-07-10T17:36:17.450 に答える