寻找在sessionStorage中存储大型js对象的方法

时间:2013-08-22 19:20:25

标签: jquery json session-storage

我正在尝试构建一个解决方案,以允许我的单页应用程序在用户点击刷新后继续存在。目前我有一个大型模型对象,我存储在DOM中,当用户使用应用程序我添加和删除模型对象中的信息。基于阅读其他帖子,我开始使用以下内容:

function snapshotModel(){
    var tempModel = JSON.stringify(modelLocator);
    sessionStorage.setItem('model', tempModel); 
    console.log('updated model snapshot');
}

function getTempModel(){
    if (sessionStorage.model && sessionStorage.model.length > 0){
        var tempModel = sessionStorage.getItem('model');
        modelLocator = $.parseJSON(tempModel);
    } else {}   
}

一旦用户登录,这种方法很有用我拍摄了modelLocator的快照,并且每隔5-10分钟继续这样做。但是,一旦用户开始使用应用程序(编辑他们的用户信息或处理订单交易),我就会最大化Chrome中的值限制。测试时我发现chrome可以占用120666个字符。通过交易中途,我打了大约196475个字符。因此,您可以看到我的modelLocator被截断,当用户点击刷新时,我们无法将字符串重新加载为JSON。

我是否有关于如何存储模型的建议?某些区域的模型是名称值对,其他部分是6个杠杆深的对象。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

发现问题是浏览器开发工具使用console.log截断值,在sessionStorage中给出了真正的值