2016-07-13 8 views
0

私は、ユーザーがオフラインで使用したり、移動することができる複数のページを持つモバイルアプリケーションを構築しようとしています。それは、それ自身の中の特定のページを探す検索機能を持つでしょう。これまでの質問では、JSONデータセットの設定がこれを行うための最良の方法だと言われました。しかし、私がJSONデータセットについて読んだすべてのサンプルやチュートリアルやブックは、すべてサーバーとブラウザとの通信に関係しています。 JSONデータセットを設定し、ユーザーがそのデータセットとやりとりするか、JSONデータセットにアクセスするためにviaを呼び出す機能をオフラインで設定するにはどうすればよいですか?私はそれが今まで見た例のように設定するのとは異なると仮定します。オフラインでアクセスできるJSONデータセットを設定するにはどうすればよいですか?

+1

'LocalStorage'が利用可能な場合は、データの文字列化バージョンを格納できます。 –

+0

'postmessage'を利用して、' html'文書に 'JSON'を保存したり、' WebWorker'を使ってローカル 'html'文書に' JSON'を提供することができます – guest271314

+0

あなたの尊重されたデータベースのすべてのJSONデータを、オフラインで長時間使用すると、ブラウザの履歴やCookieをクリアしてもデータが失われることはありません。 – Aby

答えて

0

localStorageを使用して、JSONデータをブラウザに保存できます。

のは、あなたが以下の内容でdata.jsonと呼ばれるサーバー上のファイルを持っているとしましょう:

[{ "name":"Name1", "surname":"Surname1" }, 
{ "name":"Name2", "surname":"Surname2"}, 
{ "name":"Name3", "surname":"Surname3" }, 
{ "name":"Name4", "surname":"Surname4" }] 

ユーザーが初めてのためのモバイルアプリケーションにアクセスすると、サーバーへの呼び出しを行うことができ、取得JSONデータとlocalStorageを使用してブラウザに格納します。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $.getJSON("data.json", function (data) { 
      localStorage.setItem('users', JSON.stringify(data)); 
     }); 
    }); 
</script> 

Google Chromeの - >リソース - >ローカルストレージ:

localStorage in Google Chrome

今すぐあなたのJSONオブジェクトをローカルに保存されていることをあなたは、ローカルストレージから取得し、server.Justに接続せずに、アプリケーションでそれを使用することができますあなたはいつも必ずデータがまだ作成するヌルチェックを行うことを確認してくださいサーバコールを開始する必要がある場合はローカルに存在します:

var users = JSON.parse(localStorage.getItem('users')); 

if (users != null) { 
    for (var i = 0; i < users.length; i++) { 
     alert(users[i].name + " " + users[i].surname); 
    } 
} 
+0

これは素晴らしいです、非常に明確な徹底的なexplination –

+0

私は持っている唯一の質問は、この回線が何をしているかについてもう少し説明することができます非常に、ありがとう、ありがとう?

+0

これは、jQueryライブラリへの参照を、CDN.Soのホスティングの代わりに追加しますあなたのウェブサイトの一部としてjQueryライブラリファイルを使用してCDNを使用し、他の誰かがあなたのためにそれをホストするようにします。私はStackoverflowに投稿した回答でそれを使用するので、usesrは投稿したコードをコピーして貼り付けるだけで動作します。 –

0

すでに取得したデータを保存するためにsqliteを使用することができます。だから、ユーザーがオンラインであるか、あなただけの新しいコンテンツをつかむとき再びデータ全体をつかむことを決定することができます。

https://developer.android.com/training/basics/data-storage/databases.html

別の可能性を.jsonファイルとしてデータをダウンロードし、アプリでそれをロードすることです。したがって、ユーザーの読み書き権限が必要になります。

関連する問題