2017-09-04 5 views
0

私はng-storageを使用して、チェックされたチェックボックスとさまざまなフォーム値(フォームのロット)をリフレッシュする際に追跡します。完全な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; 
    } 
} 

関数の戻りfalseの場合とローカルストレージがアクティブである場合、クォータに達したため、これが多くの可能性があります。 catch内のエラーメッセージの文字列を解析しようとする可能性がありますが、ブラウザ間で永続的ではありません。

関連する問題