C'è un motivo per non utilizzare l'archiviazione locale HTML5 per il contenuto

7

Su molti siti web statici, la dimensione totale del contenuto testuale effettivo delle 20 pagine più popolari sarebbe inferiore a 100kb.

Immaginerei che sarebbe possibile sfruttare lo storage locale HTML5 per scaricare contenuti via AJAX dal server in un singolo file, salvarlo nell'archivio locale e utilizzarlo con un framework JS basato sui dati come angularJS. In effetti, potresti scaricare in background più contenuti in silenzio. Ciò potrebbe potenzialmente consentire un'esperienza utente rapida e reattiva.

Nonostante ciò, non ho visto nessun sito web funzionare in questo modo. C'è una ragione per cui mi manca che renderebbe questa cattiva idea?

    
posta Matthew Dolman 21.09.2015 - 10:46
fonte

1 risposta

6

Penso che la risposta breve alla tua domanda sia che il motivo per cui non vedi accadere molto come quello che descrivi è che l'archiviazione locale HTML5 non è in alcun modo all'altezza del compito, e lo abbiamo fino agli ultimi due anni o quindi mancava qualcosa che fosse specificato per fornire una soluzione migliore.

Informazioni sullo storage locale HTML5 in particolare: presenta una condizione di competizione e alcuni altri problemi che ne impediscono l'utilizzo nella produzione per qualsiasi applicazione in cui si desidera garantire che non vi sia corruzione dei dati e dove si desidera poter archiviare di più di semplici stringhe.

È possibile che i problemi nello storage locale possano essere risolti, ma in realtà nessuno dei produttori di motori di browser ha alcun interesse a questo punto nell'affondare ulteriori risorse nelle loro implementazioni di storage locali. Preferiscono tutti che gli sviluppatori Web utilizzino alternative all'archiviazione locale.

Ad ogni modo, per il caso d'uso che descrivi, per fortuna ci sono in realtà soluzioni più solide. Il pezzo chiave in futuro sarà Service Worker e, nel contesto di questa domanda , il Service Worker Cache e CacheStorage interfacce specifiche.

Anche IndexedDB è la soluzione di livello produttivo che il runtime Web ora ha per il caso generale di una robusta archiviazione dei dati sul client, con implementazioni efficienti e con un controllo più ricco di funzionalità sul tipo di dati memorizzati e sulla modalità di archiviazione.

    
risposta data 21.09.2015 - 13:01
fonte

Leggi altre domande sui tag