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