2013-10-24 12 views
5

Ich benutze html5 localStorage API.Fang QUOTA_EXCEEDED_ERR on localStorage

Ich möchte die QUOTA_EXCEEDED_ERR fangen, damit ich eine Nachricht an den Benutzer wie "Speicher ist voll. Kann nicht speichern. Vielleicht ein paar Elemente löschen?"

Der Code, den ich ist wie

Sie fragen
function save() { 
    try { 
     localStorage.setItem(key, name); 
    } catch (e) { 
     if (e.name === 'QUOTA_EXCEEDED_ERR') { 
      alert("Memory is full. Cannot save. Maybe delete a few items?"); 
     } else { 
      alert("Something went wrong? Try again later?") 
     } 
    } 
} 

Ich möchte verwenden, ist das ok? Funktioniert das für alle Browser? Wird gut funktionieren oder brechen, sowieso?

Natürlich teste ich es auch, aber ich dachte, ich sollte sowieso fragen, weil ich vielleicht etwas vermisse.

Antwort

5

für ein Kontingent überschritten Fehler wird nicht immer "QUOTA_EXCEEDED_ERR" in jedem Browser sein.

Es kann "NS_ERROR_DOM_QUOTA_REACHED" in bestimmten Versionen von http://chrisberkhout.com/blog/localstorage-errors/ FF sein

"QuotaExceededError" oder "W3CException_DOM_QUOTA_EXCEEDED_ERR" auf IE-Browser-Version/Modus http://msdn.microsoft.com/en-us/library/ie/cc197050(v=vs.85).aspx

jedoch abhängig sein kann, haben Sie immer den Fehler fangen. Im schlimmsten Fall wird der Benutzer das "Etwas ist schief gegangen?" Warnung gegenüber der Warnung "Speicher ist voll".