3

ローカル ストレージを使用してアプリの状態を保存することについて簡単な質問です。iOS Web アプリの作業を開始しようとしていますが、これらのモデルのいずれかに利点または欠点があるかどうか疑問に思っています。また、アプリの状態の小さな変化をすべてローカル ストレージに保存すると、パフォーマンスに大きな影響はありますか?

ナンバー1

アプリの状態オブジェクト全体を JSON 文字列として単一のローカル ストレージ キーと値のペアに保存します。

var appstate = {
    string: 'string of text',
    somebool: true,
    someint: 16
}
localStorage.setItem('appState', JSON.stringify(appstate));

2番

アプリの状態の各変数を、ローカル ストレージ内の独自のキーと値のペアに保存します。

var appstate = {
    string: 'string of text',
    somebool: true,
    someint: 16
}
localStorage.setItem('string', appstate.string);
localStorage.setItem('bool', appstate.somebool);
localStorage.setItem('int', appstate.someint);
4

2 に答える 2

4

値を個別に保存する方が効率的であると私が考える唯一の理由は、値が互いに独立して変化すると予想される場合です。それらが別々に保存されている場合、別の値に触れることなく値のセットを更新できるため、値の有効期限の処理が改善されます。たとえば、somebool頻繁に変更され、残りは変更されない場合は、個別に保存した方がよい場合があります。有効期限とボラティリティが似ているデータをグループ化します。

それ以外の場合は、アプリケーション全体の状態を保存するだけであれば、単一の文字列で十分だと思います。

于 2013-04-23T15:50:41.480 に答える
3

読み取りと書き込み (変更) を検討してください。JavaScript オブジェクトは定数 (O(1)) の応答時間を持つハッシュであるため、頻繁な読み取りの場合は問題になりません ( Javascript big-O プロパティ アクセス パフォーマンス を参照)。書き込みの場合、null 可能性が示すように、違いがあります。単一オブジェクトの設計では、オブジェクトに多数の (またはサイズの大きい) プロパティが含まれる場合、頻繁な書き込みが遅くなる可能性があります。

于 2013-04-23T15:59:18.863 に答える