是否可以使用javascript在客户端计算机上本地保存JSON?

时间:2016-10-11 09:02:44

标签: javascript json

嗨是否可以在客户端保存json? 例如,见下面的代码,obj对象在每次单击时被修改,我想将这个修改过的对象保存为用户机器上的json,用户可以稍后加载。

我想要这个特定的解决方案,因为我要保存的数据将是巨大的。 Cookies(如果用户清理浏览器会丢失)和HTML5本地存储不是一个选项(由于2.5MB到10MB,因浏览器而异)。 我要保存的数据将是base64图像。如果用户保存50个或更多图像,则10 MB是小尺寸。

此问题不重复,至少不是本地存储的最大大小限制。由于我的问题中的数据要求已经超过了各种浏览器的最大本地存储。 此外,这种本地存储各种浏览器,因此用户可以保存的数据量将随浏览器而变化,这是不希望的。

var obj=[{name:"Some Init data"}];


/*
this function adds new data based on html form fields to this obj object
*/
function someFunctionOnClick(){
    obj.push({name:"some other data from some other html field"});
}

/*
Want to save this object: obj object as json on client machine,
so that he can use my app even offline, just by loading JSON back stored
locally on his machine
    */
function saveThisJSONLocallyOnClientSystem(){
    var data=JSON.stringify(obj);
}

1 个答案:

答案 0 :(得分:3)

IndexedDB允许客户端存储大量数据,远远超过localStorage。

对indexedDB的浏览器支持非常好,以下摘录来自Wikipedia

  

Firefox(包括版本4),Google Chrome(自版本11)以及Internet Explorer 10 Consumer Preview和Metro风格应用程序包含对IndexedDB的初步支持。 Apple于2014年6月2日在WWDC 2014主题演讲中宣布支持Safari 8 for iOS 8和OS X.

旧浏览器还有polyfill