2012-11-26 19 views
46

Ho trovato articles riguardo al comportamento della cache, quindi posso solo supporre che non sia molto diverso ma volevo essere sicuro.Cosa succede quando localStorage è pieno?

Ho letto che la maggior parte dei browser ha 5MB (dare o prendere) per localStorage e sono stato interessato a quale sarebbe il comportamento dei browser?

Capisco che ogni browser agisca in modo difforme, ma sono interessato principalmente a Safari, Chrome e Firefox (poiché sono quelli che considero come browser).

  • I browser sopra menzionati cancelleranno i dati dal mio sito Web o sceglieranno "il più vecchio" o qualcosa del genere?
  • Il mio articolo verrà salvato in tal caso?

E la cosa più importante:

  • Consente di dire che "abuso" della localStorage e il mio sito cercando di utilizzare il tutto, e nella stessa pagina Sono riempiendolo e cercando di risparmiare di più, riceverò un avviso E restituirà il valore nullo quando questo accade o in qualche modo viene salvato in memoria?

  • Cosa succede se provo a salvare un oggetto più grande della dimensione localStorage?

    risposto: risposta può essere trovata here

  • è lo stesso esatto comportamento si può aspettare da sessionStorage che allegdly dovrebbe essere lo stesso?

So che questo è un sacco di domande, ma sto cercando di capire tutto ciò che è legato al tema, sarei grato per qualsiasi parte della domanda si può rispondere.

Saluti.

+0

Cosa è successo, quando l'hai provato? – kol

+0

Beh, non l'ho ancora riempito, sto cercando di fare altre ricerche prima per assicurarmi di non commettere errori iniziali. non sono abbastanza sicuro di come provarlo e ho visto che non esiste una tale domanda o articolo e ho pensato che questo potesse essere un buon post per le persone. una volta raggiunto quel punto, aggiungerò delle conclusioni da me stesso se a questo non viene data risposta. –

+2

dai un'occhiata a questo: http://stackoverflow.com/questions/12508274/does-amplify-store-return-error-or-catch-exception-when-local-storage-limit-exce –

risposta

62

In primo luogo, alcune risorse utili:

In risposta alla tua domanda, i browser desktop tendono ad avere una quota massima di localStorage iniziale di 5 MB per dominio. Questo può essere regolata dall'utente in alcuni casi:

  • Opera: Opera: config -> Quota di dominio per localStorage
  • Firefox: about: config -> dom.storage.default_quota

In Chrome, non sembra esserci un modo per l'utente di regolare questa impostazione, anche se come Opera, i dati localStorage possono essere modificati direttamente per dominio utilizzando gli Strumenti per sviluppatori.

Quando si tenta di memorizzare i dati in localStorage, il browser controlla se c'è abbastanza spazio rimanente per il dominio corrente. Se sì:

  • I dati vengono memorizzati, sovrascrivendo i valori se esiste già una chiave identica.

Se no:

  • I dati non sono memorizzati e non dati esistenti vengono sovrascritti.
  • Viene generata un'eccezione QUOTA_EXCEEDED_ERR.

In questo caso, getItem(key) restituirà l'ultimo valore memorizzato correttamente, se presente.

(Opera è leggermente differente in quanto visualizza una finestra di dialogo che dà all'utente la scelta di aumentare lo spazio di archiviazione per il dominio corrente.)

noti che sessionStorage e localStorage sono entrambe le implementazioni dello stesso oggetto di archiviazione così i loro il comportamento è simile e la gestione degli errori è la stessa.

+0

Questa sembra una risposta solida, grazie per il tuo tempo! –

+0

Prego. Spiacente, non ho informazioni per Safari o IE (sono su Linux). – tagawa

+0

Se sto capendo correttamente, significa che tutti i browser hanno un limite di quota specifico per il dominio? o è (diciamo) 5MB di memoria condivisa da tutti i domini? – Nis

Problemi correlati