我想制作一个完全离线运行的简单网页浏览器控制台程序。
在该程序中,我希望以对象数组的形式存储一些数据,以便我可以轻松选择随机对象。
我的问题是,即使我查了一下互联网,包括这个问题Storing Objects in HTML5 localStorage和这个问题Offline webapp. How to store data?,我仍然不知道该怎么做。
我想找到一种方法轻松地将对象添加到我的阵列并保存这些更改,这样当我再次打开浏览器时,数据集将保持不变。
据我所知,HTML5的本地存储只以字符串的形式存储数据,所以我该怎么办?
我应该使用Node.js吗?如果是这样,我如何将数据发送回我的网络浏览器Javascript文件,以便我可以在浏览器中显示内容?
答案 0 :(得分:2)
您可以使用JSON.stringify
序列化对象数组,以便将其作为字符串存储在Web存储中,并在使用JSON.parse
检索时对其进行反序列化:
var arrayOfObjects = [
{ foo: 'hello' },
{ bar: 'world' },
{ baz: 'dinosaurs' }
];
function storeInWebStorage(key, arr) {
localStorage.setItem(key, JSON.stringify(arr));
}
function retrieveFromWebStorage(key) {
return JSON.parse(localStorage.getItem(key));
}
storeInWebStorage(arrayOfObjects);
请注意there's a limit on the amount of data you can store in Web Storage,并且此限制因浏览器而异。