0

indexedDB や localStorage など、オフラインで使用するために JavaScript に配列をローカルに保存できるようにしたいと考えています。ただし、localStorage は文字列のみを格納し、indexedDB はオブジェクトのみを格納することを理解しています。配列を JSON でシリアル化して localStorage に格納するだけでよいことはわかっていますが、それを行うためのもっと公式な方法があるかどうか疑問に思っています。

4

4 に答える 4

1

はい、localStorage からほとんど文字列化して解析します。私はこのヘルパーを使用します..

var _localStorage = {};

_localStorage.set = function(n, o){
  localStorage.setItem(n, JSON.stringify(o||{}));
}

_localStorage.get = function(n){
    return JSON.parse(localStorage.getItem(n));
}

_localStorage.array = function(n, f, p){
    var arr = _localStorage.get(n) || [];
    arr[f](p); _localStorage.set(n, arr);
}

// test

_localStorage.set('cfg', {name:'pro'});
console.log(_localStorage.get('cfg'));

_localStorage.set('cfg', [{name:'pro'}]);
_localStorage.array('cfg', 'push', {name:'flav'});
console.log(_localStorage.get('cfg'));
于 2013-08-02T02:25:16.580 に答える
0

HTML5 Offline Storage のようなものに興味があるかもしれません: http://www.html5rocks.com/en/tutorials/offline/storage/

Javascript でオブジェクトを「シリアル化」する方法に関しては、Javascript オブジェクトで使用される JSON 形式を維持するだけで実現できます。

于 2013-08-02T02:40:39.920 に答える