0

我正在尝试构建一个解决方案,以允许我的单页应用程序在用户点击刷新时存活下来。目前,我有一个大型模型对象,我存储在 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 个杠杆深度对象。

感谢您的帮助。

4

1 回答 1

0

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

于 2013-08-29T14:44:22.220 回答