使用json在本地存储远程数据库

时间:2014-10-17 09:30:56

标签: javascript json

我想在本地缓存来自远程数据库的数据,以便在我的javascript应用程序中使用它。我不需要任何过激行为,如对本地数据的SQL请求,所以我决定以下列方式将数据库记录存储在对象数组中:

    <script type="text/javascript">
 var json0 = '{"1" : {"fname": "fname1", "sname": "sname1"}, "2" : {"fname": "fname2", "sname": "sname2"}}';
 var json1 = '{"2" : {"data": "11/05/2014", "time": "11:30:18", "person": "data0[1]"}, "6" : {"data": "24/06/2014", "time": "16:11:05", "person": "data0[2]"}, "8" : {"data": "11/10/2014", "time": "12:15:27", "person": "data0[1]"}}';
 var data0 = JSON.parse(json0);
 var data1 = JSON.parse(json1, function (k, v) {
    try {
      return  eval(v); 
    } catch (e) {
        return v;
    }         
});
 console.log(data1);
</script>

问题是关于内存使用情况。如果数组 data1 中的对象将存储对属性“ person ”中 data0 的对象的引用,或者它们将存储这些对象的副本对象

1 个答案:

答案 0 :(得分:1)

作为示例的缩减版本显示,data0将通过引用存储。

var tt = {f1: 'aa', f2: 'bb'}
var rr = eval('tt');

console.log(rr.f1); // 'aa'
rr.f1 = 'cc';
console.log(tt.f1); // 'cc'

但使用eval(..)是不好的方法:Why is using the JavaScript eval function a bad idea?。正如杰夫所说,使用本地存储。