2013-08-22 29 views
0

我想建立一個解決方案,讓我的單頁應用程序能夠在用戶點擊刷新時生存下來。目前我有一個大的模型對象,我存儲在DOM中,並且當用戶使用應用程序時,我會從模型對象中添加和刪除信息。基於閱讀其他職位,我開始用下面的工作:尋找方法來存儲大型js對象在sessionStorage

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杆深的對象。

感謝您的任何幫助。

+0

你確定你是在配額?請參閱https://developers.google.com/chrome/whitepapers/storage#query – muratgu

+0

即時將所有內容都放在一個值中。當我得到concole.log並將其與sessionStorage值進行比較時,它會被截斷。我做了一個sessionStorage測試頁面,並且chrome最大容量爲120,666個字符。我在交易中的模型是196,475 –

回答

0

發現的問題是瀏覽器工具dev的截斷值使用的console.log讓我在sessionStorage的真正價值

相關問題