5

1 つの JQM / Phonegap アプリからページ間でデータを渡すことについて質問があります。

検索語、場所、その他のフィルター値などのデータを含む JS オブジェクトがあり、たとえば、ユーザーが検索ページから設定ページにジャンプし、たとえば再び検索ページに戻る場合...どうすればよいですかプレビュー ページにあった情報を保存しますか? Cookie のようなものはありますか、それとも sqlite を使用して情報を保存し、ユーザーが検索ページにアクセスするたびにそれを読み取る必要がありますか?

4

3 に答える 3

15

私はLocalStorageを使用しますが、使い方は非常に簡単です。プレーンテキストを保存できます:

// Writing 'something' in localStorage.myvariable
localStorage.myvariable = 'something'

// Displaying the previous variable
console.log(localStorage.myvariable)

プレーンテキストでは不十分で、データ構造を保存する必要がある場合は、次のようなものを実装できます。

Storage.prototype.setObject = function(key, value) { this.setItem(key, JSON.stringify(value)); }
Storage.prototype.getObject = function(key) { var value = this.getItem(key);return value && JSON.parse(value); }

// Storing a JSON object
localStorage.setObject('myObject', {key1: 'value', key2: 'value2'});

// Accessing the object
localStorage.getObject('myObject')
于 2013-02-01T13:50:04.973 に答える
3

渡すアイテムが 1 つまたは 2 つしかないため、このハッシュタグ アプローチを使用しました (2014 年現在)。# タグを介して渡すことができ、JS を使用して結果を配列に分割できます。たとえば、次のようになります。

URL から: index.html#var1?var2

解決済みページ:

var str = str.window.location.hash.substr(1);
var res = str.split("?");
alert(res[0]+","+res[1]);

それが誰かを助けることを願っています。LocalStorage とその他のオプションは、このタイプのリフティング IMO には重すぎます。

于 2014-06-24T21:49:58.510 に答える
1

考えられるアプローチの1つは、クエリ文字列を使用してページ間でデータを送受信することです。ページのURLにデータを追加できます。newpage.html?val = 12のように、渡す必要のあるデータの量が少ない場合は、このアプローチの方が優れており、sqliteよりもはるかに軽量です。キーと値のペアであるlocalstorageを使用することもできます(リレーショナルであるsqliteとは異なります)。sqliteよりも実装がはるかに簡単です(ただし、永続的ではありません)。

また、本当に複数のhtmlページが必要な場合は、jquerymobileやsenchatouchなどのフレームワークがアプリの画面として複数のdivを持つ1つのhtmlページでうまく機能するかどうかを再検討することをお勧めします。だからあなたも彼らに試してみることができます。

于 2013-02-01T13:37:49.870 に答える