Panoramica dello spazio di archiviazione web

Marc Cohen

È importante scegliere i meccanismi di archiviazione giusti, sia per l'archiviazione locale del dispositivo sia per l'archiviazione del server basata su cloud. Un buon motore di archiviazione garantisce che le tue informazioni vengano salvate in modo affidabile, riduce la larghezza di banda e migliora la reattività. La strategia di memorizzazione nella cache corretta è un elemento fondamentale per attivare esperienze web mobile offline.

Questo articolo fornisce una breve base per valutare le API e i servizi di archiviazione, dopodiché verrà fornita una tabella di confronto e alcune indicazioni generali. Nel prossimo futuro, prevediamo di aggiungere risorse per comprendere meglio alcuni argomenti relativi allo spazio di archiviazione.

Tassonomia dello spazio di archiviazione

Iniziamo a comprendere alcune delle dimensioni in base alle quali possiamo analizzare lo spazio di archiviazione dei dati per le app web. In seguito, utilizzeremo questo framework per enumerare e valutare le numerose opzioni di archiviazione disponibili per gli sviluppatori web.

Modello dati

Il modello di archiviazione delle unità di dati determina la modalità di organizzazione interna dei dati, che influisce sulla facilità d'uso, sul costo e sulle prestazioni delle richieste di archiviazione e recupero.

  • Strutturati:i dati archiviati in tabelle con campi predefiniti, come è tipico dei sistemi di gestione del database basati su SQL, si prestano bene a query flessibili e dinamiche, in cui l'intera gamma di tipi di query potrebbe non essere nota a priori. Un esempio di un archivio dati strutturato nel browser è IndexedDB.

  • Chiave/valore:i datastore chiave/valore e i database NoSQL correlati offrono la possibilità di archiviare e recuperare dati non strutturati indicizzati da una chiave univoca. I datastore chiave/valore sono simili alle tabelle hash in quanto consentono di accedere in tempo costante ai dati opachi indicizzati. Esempi di datastore chiave/valore di spicco sono l'API Cache nel browser e Apache Cassandra sul server.

  • Stream di byte:questo semplice modello memorizza i dati come stringa di byte opaca di lunghezza variabile, lasciando qualsiasi forma di organizzazione interna al livello di applicazione. Questo modello è particolarmente adatto per file system e altri blocchi di dati organizzati in modo gerarchico. Esempi importanti di datastore di stream di byte includono i file system e i servizi di archiviazione cloud.

Persistenza

I metodi di archiviazione per le app web possono essere analizzati in base all'ambito in cui i dati vengono resi permanenti.

  • Persistenza della sessione:i dati in questa categoria vengono conservati solo finché una singola sessione web o una scheda del browser rimane attiva. Un esempio di meccanismo di archiviazione con persistenza della sessione è l'API Session Storage.

  • Persistenza del dispositivo:i dati di questa categoria vengono mantenuti nelle sessioni e nelle schede/finestre del browser all'interno di un determinato dispositivo. Un esempio di meccanismo di archiviazione con persistenza del dispositivo è l'API Cache.

  • Persistenza globale:i dati in questa categoria vengono conservati tra sessioni e dispositivi. Di conseguenza, è la forma più solida di persistenza dei dati. Un esempio di un meccanismo di archiviazione con persistenza globale è Google Cloud Storage.

Supporto dei browser

Gli sviluppatori devono scegliere un'API più adatta al loro dominio di problemi. Tuttavia, devono anche tenere conto del fatto che le API standardizzate e consolidate sono preferibili alle interfacce personalizzate o proprietarie, in quanto tendono ad avere una durata maggiore e sono supportate più ampiamente. Inoltre, possono usufruire di una knowledge base più ampia e di un ecosistema di sviluppatori più ricco.

Transazioni

Spesso è importante che una raccolta di operazioni di archiviazione correlate riesca o fallisca in modo atomico. I sistemi di gestione dei database hanno tradizionalmente supportato questa funzionalità utilizzando il modello di transazioni, in cui gli aggiornamenti correlati possono essere raggruppati in unità arbitrarie. Sebbene non sia sempre necessaria, questa è una funzionalità comoda e talvolta essenziale in alcuni domini di problemi.

Sincronizzato/asincrono

Alcune API di archiviazione sono sincrone nel senso che le richieste di archiviazione o recupero bloccano il thread attualmente attivo fino al completamento della richiesta. Questo è particolarmente gravoso nei browser web, in cui la richiesta di spazio di archiviazione condivide il thread principale con l'interfaccia utente. Per motivi di efficienza e prestazioni, è preferibile utilizzare API di archiviazione asincrone.

Eseguire il debug dello spazio di archiviazione in Chrome DevTools

Consulta le seguenti documentazioni per scoprire di più sull'utilizzo di Chrome DevTools per esaminare e eseguire il debug dell'API di archiviazione web che preferisci. Le API non menzionate qui non sono supportate in DevTools o non sono applicabili.

Se utilizzi più API di archiviazione, dai un'occhiata alla funzionalità Cancella spazio di archiviazione di DevTools. Questa funzionalità ti consente di cancellare più negozi con un solo pulsante. clic. Per saperne di più, vedi Svuotare cache, archiviazione, database e service worker.

Passaggi successivi

Ora che abbiamo esaminato alcuni dei modi pertinenti per considerare i meccanismi di archiviazione e confrontato le API e i servizi più popolari attualmente disponibili, prossimamente aggiungeremo altri contenuti per approfondire uno o più argomenti di interesse: