4

私のテストデータは現在、次のようなhtml内にあります:

var jsonStatus = [ 
{ "myKey": "A", "status": 0, score: 1.5 },
{ "myKey": "C", "status": 1, score: 2.0 },
{ "myKey": "D", "status": 0, score: 0.2 },
{ "myKey": "E", "status": 1, score: 1.0 },
{ "myKey": "F", "status": 0, score: 0.4 },
{ "myKey": "G", "status": 1, score: 3.0 },
];

しかし、私のデータは最終的に ~20.000 エントリになるので、アプリの最初の起動時に一度ロードする statusStarter.json ファイル (ローカルまたは外部) に外部化したいと考えています。クライアントの localStorage に入ると、ローカルで簡単に読み書きできます。:] また:

1. 外部化された json を localStorage に (文字列として) ロードする方法は?

2.条件を維持する方法は?(毎回リロードするのは避けてください)

4

1 に答える 1

4

http://jsfiddle.net/LyAcs/7/

以下を含む data.json ファイルがあるとします。

[ 
{ "myKey": "A", "status": 0, "score": 1.5 },
{ "myKey": "C", "status": 1, "score": 2.0 },
{ "myKey": "D", "status": 0, "score": 0.2 },
{ "myKey": "E", "status": 1, "score": 1.0 },
{ "myKey": "F", "status": 0, "score": 0.4 },
{ "myKey": "G", "status": 1, "score": 3.0 }
]

パラメータ化可能な localStorage.target を使用した JS 条件付き関数:

function loadFileJSON( toLocalStorage, fromUrl){
    if (localStorage[toLocalStorage])
            { console.log("Good! Data already loaded locally! Nothing to do!");  }
    else {
        $.getJSON(   fromUrl   , function(data) { 
            localStorage[toLocalStorage] = JSON.stringify(data);
            console.log("Damn! Data not yet loaded locally! Ok: I'am loading it!");
        });
      }
    }
// Function's firing:
loadFileJSON( 'myData','http://mywebsite/path/data.json'); 
// should works w/ local folders as well

データの読み取り:データはlocalStorage.myDataに文字列として格納されています。次を使用してアクセスできます。

var myJSON = JSON.parse(localStorage.myData);
//Read:
alert("Mister " + myJSON[3].myKey + ", your current score is "+ myJSON[3].score +"!");

さらに興味深いのは、このローカル データを書き込む可能性です。

于 2013-04-24T14:09:19.607 に答える