2013-05-29 7 views
11

私は、HTML、CSS、およびJavaScriptを使用してTo-Doリストアプリケーションを作成しています。データを格納するための最良の方法はローカルデータベースです。私はlocalStoragesessionStorageの使い方を知っていて、オンラインのMySQLデータベースの使い方も知っています。ただし、このアプリケーションはオフラインで実行できる必要があり、オフラインでデータを保存する必要があります。
HTMLとJavaScriptだけでこれを行う方法はありますか?ローカルのオフラインデータベースを作成する方法

コメントへの対応

「あなたが問題のようですので、何...あなたがlocalStorageを使用する方法を知って言いました?」

@Lior私はオブジェクトに関するdiffenentデータを含む別の列と行を保存したいのに対し、私はおよそlocalStorageを知っているすべては、変数として、あなたは単一の結果を保存することができるということです。しかし、localStorageはオブジェクトを保持できますか?そうであれば通常のオブジェクト表記で参照されますか?

すべての実装は、おそらくユーザーが使用したいブラウザによって異なります。

@paulクロムが最も人気があると思います。


さて、私は私が求めていたことは確か私はJavaScriptとHTMLではなくこれを行うことができますどのように私はHTMLとJavaScriptでこれを行うことができます方法はありましたことを明らかにしたいですか?。基本的には、オンラインではなくユーザーのマシンにその内容を保存するSQLデータベースのタイプが欲しかった。

私の問題を解決したのは、WebDBまたはWEBSQLを使用していたことです(私はそれがそんな風に呼ばれたと思います)。

+0

あなたは 'localStorage'の使い方を知っていると言っています...だから問題は何ですか? –

+0

すべての実装は、おそらくユーザーが使用したいブラウザに依存します。 – paul

+0

'localStorage'では、ネイティブにオブジェクトを保存することはできませんが、それを回避する方法は' JSON.stringify'を使用して保存し、それを取得する 'JSON.parse'です。 – Ian

答えて

8

私はこの回答に約3年遅れていますが、当時利用可能なオプションについての実際の議論はなく、OPがis now deprecatedを選択したデータベースがあったと考えて、私は問題に2セント。

まず、実際にクライアント側のデータベースが必要かどうかを検討する必要があります。具体的には...

  • データ項目間に明示的または暗黙的な関係が必要ですか?
  • 上記の項目を照会する機能はどうですか?
  • または5 MB以上のスペース?

上記のすべてに「いいえ」と答えた場合は、localStorageに移動し、WebSQLおよびIndexedDB APIである頭痛から自分自身を保存します。まあ、おそらく後者の頭痛は、前者が前に述べたように、非難されているからです。

それ以外の場合、IndexedDBは、ネイティブのクライアント側データベースが存在する限り、唯一のオプションです.W3C標準トラックに残っている唯一のデータベースであるためです。

低レベルのストレージ操作コードを記述することなく、これらの機能のいずれかを利用する場合は、BakedGoodsをチェックしてください。それによって、クライアント上でサポートされて最初に遭遇ネイティブ・データベースにデータを置くこと、例えば、同じくらい簡単です:

bakedGoods.set({ 
    data: [{key: "key1", value: "val1"}, {key: "key2", value: "val2"}], 
    storageTypes: ["indexedDB", "webSQL"], 

    //Will be polyfilled with defaults for equivalent database structures 
    optionsObj: {conductDisjointly: false}, 

    complete: function(byStorageTypeStoredKeysObj, byStorageTypeErrorObj){} 
}); 

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

関連する問題