html - tag - title attribute width




Memoria locale vs cookie (4)

Bene, la velocità di archiviazione locale dipende molto dal browser utilizzato dal client e dal sistema operativo. Chrome o Safari su un Mac potrebbero essere molto più veloci di Firefox su un PC, specialmente con le nuove API. Come sempre però, il test è tuo amico (non sono riuscito a trovare alcun benchmark).

Non vedo davvero un'enorme differenza nei cookie rispetto all'archiviazione locale. Inoltre, dovresti essere più preoccupato per i problemi di compatibilità: non tutti i browser hanno persino iniziato a supportare le nuove API HTML5, quindi i cookie sarebbero la soluzione migliore per velocità e compatibilità.

Voglio ridurre i tempi di caricamento sui miei siti web spostando tutti i cookie nello storage locale poiché sembrano avere la stessa funzionalità. Esistono vantaggi / svantaggi (soprattutto per quanto riguarda le prestazioni) nell'utilizzo della memoria locale per sostituire la funzionalità dei cookie, ad eccezione degli ovvi problemi di compatibilità?


Con localStorage , le applicazioni Web possono memorizzare dati localmente nel browser dell'utente. Prima di HTML5, i dati delle applicazioni dovevano essere memorizzati nei cookie, inclusi in ogni richiesta del server. localStorage è più sicuro e grandi quantità di dati possono essere archiviate localmente, senza influire sulle prestazioni del sito Web. Sebbene localStorage sia più moderno, ci sono alcuni pro e contro per entrambe le tecniche.

Biscotti

Professionisti

  • Supporto legacy (è stato intorno per sempre)
  • Dati persistenti
  • Date di scadenza

Contro

  • Ogni dominio memorizza tutti i suoi cookie in una singola stringa, che può rendere difficili i dati di analisi
  • I dati non sono criptati, il che diventa un problema perché ... ... anche se di piccole dimensioni, i cookie vengono inviati con ogni richiesta HTTP Dimensione limitata (4KB)
  • L'iniezione SQL può essere eseguita da un cookie

Memoria locale

Professionisti

  • Supporto dalla maggior parte dei browser moderni
  • Dati persistenti che vengono memorizzati direttamente nel browser
  • Le regole della stessa origine si applicano ai dati di archiviazione locali
  • Non viene inviato con ogni richiesta HTTP
  • ~ 5 MB di spazio di archiviazione per dominio (ovvero 5120 KB)

Contro

  • Non supportato da niente prima: IE 8, Firefox 3.5, Safari 4, Chrome 4, Opera 10.5, iOS 2.0, Android 2.0
  • Se il server necessita di informazioni client memorizzate, è necessario inviarlo di proposito.

localStorage utilizzo di localStorage è quasi identico a quello della sessione. Hanno metodi praticamente esatti, quindi passare da sessione a localStorage è davvero un gioco da ragazzi. Tuttavia, se i dati memorizzati sono davvero cruciali per la tua applicazione, probabilmente utilizzerai i cookie come backup nel caso in cui localStorage non sia disponibile. Se vuoi controllare il supporto del browser per localStorage , tutto ciò che devi fare è eseguire questo semplice script:

/* 
* function body that test if storage is available
* returns true if localStorage is available and false if it's not
*/
function lsTest(){
    var test = 'test';
    try {
        localStorage.setItem(test, test);
        localStorage.removeItem(test);
        return true;
    } catch(e) {
        return false;
    }
}

/* 
* execute Test and run our custom script 
*/
if(lsTest()) {
    // window.sessionStorage.setItem(name, 1); // session and storage methods are very similar
    window.localStorage.setItem(name, 1);
    console.log('localStorage where used'); // log
} else {
    document.cookie="name=1; expires=Mon, 28 Mar 2016 12:00:00 UTC";
    console.log('Cookie where used'); // log
}

"I valori di localStorage sulle pagine Secure (SSL) sono isolati" poiché qualcuno ha notato che localStorage non sarà disponibile se si passa dal protocollo protetto "http" a "https", dove il cookie sarà comunque accessibile. È importante essere consapevoli di questo se si lavora con protocolli sicuri.


La memoria locale può memorizzare fino a 10mb di dati offline, mentre la sessione può memorizzare fino a 5 mb di dati. Ma i cookie possono memorizzare solo 4kb di dati in formato testo.


Vale anche la pena ricordare che localStorage non può essere utilizzato quando gli utenti navigano in modalità "privata" in alcune versioni di Safari mobile.

Citato da MDN ( https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage ):

Nota: a partire da iOS 5.1, Safari Mobile memorizza i dati localStorage nella cartella cache, che è soggetta a occasionali operazioni di pulizia, su richiesta del sistema operativo, in genere se lo spazio è breve. La modalità di navigazione privata di Safari Mobile impedisce inoltre di scrivere interamente su localStorage.





local-storage