2017-09-04 58 views
0

我正在使用ng-storage來存儲JSON,以便在刷新的情況下跟蹤選中的複選框和各種表單值(大量表單)。有在本地存儲已滿,並重新加載頁面的結果在一定的情景:檢測完整的HTML5存儲(ng-storage)

壞郵件431原因:請求頭字段太大

我發現沒有辦法來捕獲和處理這個響應在這種情況下清除我的存儲。如果有幫助,這是我的服務:

angular.module('app') 
    .service('CookieService', function($localStorage, SharedService) { 
    $localStorage[SharedService.activeOffer.id] = $localStorage[SharedService.activeOffer.id] || {}; 
    var localStorage = $localStorage[SharedService.activeOffer.id]; 

    return { 
     localStorage: localStorage, 
     setSession: function(id, data) { 
     checkLocalStorageUsage(); 
     if (typeof data != "string") { 
      data = JSON.stringify(data); 
     } 
     localStorage[id] = data; 
     }, 
     getSession: function(id) { 
     if (localStorage[id]) { 
      return JSON.parse(localStorage[id]); 
     } 
     }, 
     checkSession: function(id) { 
     return (!!(localStorage[id] && localStorage[id].length)); 
     }, 
     removeSession: function(id) { 
     delete localStorage[id]; 
     }, 
     removeAllSessions: function(id) { 
     $localStorage.$reset(); 
     } 
    }; 
    }); 

回答

0

你可以嘗試一個try-catch檢查是否加入或沒有價值,是這樣的:

function addValueToLocalstorage(key, value) { 
    try { 
     localStorage.setItem(key, value); 
     return true; 
    } catch (e) { 
     return false; 
    } 
} 

如果函數返回和本地存儲是活躍的,那麼很有可能這是因爲你達到了配額。 您可以嘗試解析catch中的錯誤消息的de字符串,但它不會在瀏覽器之間持續存在。