2012-03-07 17 views
3

HTML5アプリケーションを構築することを検討しています。このアプリケーションでは、サーバーからSQLiteデータベースをダウンロードし、オフラインでデータを参照するためにそのデータベースにローカルでアクセスする必要があります。SQLiteデータベースをダウンロードして、オフラインでHTML5経由でローカルに使用することはできますか?

事前設定済みのSQLiteデータベースをダウンロードし、HTML5でローカルにアクセスできますか?私はこれに関する事例やチュートリアルを見つけることができませんでした。

現時点では、マニフェストキャッシュファイル(これまでのところ問題ありません)を経由してオフラインで実行できるようにサイトを構築することも考えられますが、ダウンロードしたあらかじめ設定されたSQLiteデータベースサーバー、それは私がどのように処理するか分からない部分です。

オンライン、HTML5アプリケーションは

答えて

3

HTML5とSQLiteのは、同じものではありません...、更新のためにサーバーをチェックマニフェストキャッシュを再構築して、再度データベースを更新する機能を持っている必要があります。 HTML5のオフラインストレージとWeb SQLの機能はSQLiteで実装を使用しますが、すべての実装でSQLiteを使用するわけではありません。

これは簡単な答えです。

代わりに、更新のタイムスタンプを保存したり、データをJSON(またはそれに類似したもの)で前後に往復させるなどして、データを同期させる必要があります。

+1

+1の技術マッシュアップはしばしば可能ですが、適切でない場合はしばしば悪い考えです。大きなヒントは、例やチュートリアル(ルールではなく大きなヒント)を見つけることができないときです。 –

1

a specification of a Web SQL DatabaseはSQLのようなインターフェイスを提供しますが、残念ながらアクティブメンテナンスは行われていません。ただし、ChromeではOperaSafarihttp://en.wikipedia.org/wiki/Web_SQL_Database)が実装されています。ここにはa tutorial on web databasesがあります。

データベースが5  MB(http://dev.w3.org/html5/webstorage/#disk-space)より小さく、辞書/配列/ハッシュマップなどの理由で作成できる場合は、local storageを使用してください。

あなたのブラウザがローカルストレージをサポートしている場合は、データベースをローカルストレージに格納する(ローカルストレージには文字列を格納することができます)、ロードして解析するデータにアクセスする必要があるときはいつでも次のツールが必要です。

// Test if you browser supports local storage 
'localStorage' in window && window['localStorage'] !== null; 

// Store value in local storage 
localStorage.setItem(key, value); 

// Load value from local storage 
localStorage.getItem(key); 

// Parse JSON to JavaScript object 
JSON.parse('{"name":"John"}'); 

// Convert JavaScript object to JSON 
JSON.stringify({"name":"John"}) 

最新のブラウザには、ネイティブJSONがサポートされています。古いブラウザの場合、優れたJSON-js libraryがあります。

+0

ありがとうKajic。私はWeb SQL(SQLiteを使用していた)が死んでいたことに気づいていませんでした。それは私の計画にとって非常に重要でした。残念ながら、Web SQLとマニフェストキャッシュを組み合わせると、オフライン機能が必要なかなり甘いHTML5ベースのモバイルアプリケーションが可能になりました。このHTML5ベースのソリューションは、アンドロイド/ iosアプリケーションを開発するよりもはるかに簡単です。私はIndexedDBが有用であることを知ることができますが、確かにWebSQLがもたらした力はありません。 :( – climbd