Présentation du stockage Web

Il est important de choisir les mécanismes de stockage appropriés, à la fois pour le stockage local sur l'appareil et pour le stockage sur serveur cloud. Un bon moteur de stockage garantit l'enregistrement fiable de vos informations, réduit la bande passante et améliore la réactivité. La bonne stratégie de mise en cache de stockage est un élément essentiel pour permettre des expériences Web mobiles hors connexion.

Cet article fournit une base pour évaluer les API et les services de stockage. Nous vous fournirons ensuite un tableau comparatif et des conseils généraux. Nous prévoyons d'ajouter prochainement des ressources pour vous aider à mieux comprendre certains sujets de stockage.

Taxonomie du stockage

Commençons par comprendre certaines des dimensions permettant d'analyser le stockage de données pour les applications Web. Nous utiliserons ensuite ce framework pour énumérer et évaluer les nombreuses options de stockage disponibles pour les développeurs Web.

Modèle de données

Le modèle de stockage des unités de données détermine la manière dont les données sont organisées en interne, ce qui a un impact sur la facilité d'utilisation, les coûts et les performances des requêtes de stockage et de récupération.

  • Structured (structurées):les données stockées dans des tables avec des champs prédéfinis, comme c'est généralement le cas pour les systèmes de gestion de bases de données basés sur SQL, se prêtent bien aux requêtes flexibles et dynamiques, où l'ensemble des types de requêtes peut ne pas être connu à priori. IndexedDB est un exemple de datastore structuré dans le navigateur.

  • Clé-valeur:les datastores clé-valeur et les bases de données NoSQL associées permettent de stocker et de récupérer des données non structurées indexées par une clé unique. Les datastores clé-valeur sont comme des tables de hachage en ce sens qu'ils permettent un accès en temps constant aux données opaques indexées. L'API Cache dans le navigateur et Apache Cassandra sur le serveur sont des exemples de datastores clé-valeur importants.

  • Flux d'octets:ce modèle simple stocke les données sous la forme d'une chaîne d'octets opaque à longueur variable, laissant toute forme d'organisation interne à la couche application. Ce modèle est particulièrement adapté aux systèmes de fichiers et aux autres blocs de données organisés de manière hiérarchique. Les systèmes de fichiers et les services de stockage cloud sont des exemples de datastores de flux d'octets.

Persistance

Les méthodes de stockage des applications Web peuvent être analysées en fonction de la portée sur laquelle les données sont rendues persistantes.

  • Persistance de session:les données de cette catégorie ne sont conservées que tant qu'une session Web ou un onglet du navigateur reste actif. L'API Session Storage est un exemple de mécanisme de stockage avec persistance de session.

  • Persistance de l'appareil:les données de cette catégorie sont conservées entre les sessions et les onglets/fenêtres du navigateur, sur un appareil donné. L'API Cache est un exemple de mécanisme de stockage avec persistance de l'appareil.

  • Persistance globale:les données de cette catégorie sont conservées entre les sessions et les appareils. Il s'agit donc de la forme de persistance de données la plus robuste. Google Cloud Storage est un exemple de mécanisme de stockage avec persistance globale.

Navigateurs pris en charge

Les développeurs doivent choisir une API la mieux adaptée à leur domaine de problème. Toutefois, ils doivent également tenir compte du fait que les API standardisées et bien établies sont préférables aux interfaces personnalisées ou propriétaires, car elles ont tendance à être plus durables et plus largement compatibles. Ils peuvent également bénéficier d'une base de connaissances plus large et d'un écosystème de développeurs plus riche.

Transactions

Il est souvent important qu'une collection d'opérations de stockage associées réussisse ou échoue de manière atomique. Les systèmes de gestion de bases de données ont traditionnellement pris en charge cette fonctionnalité à l'aide du modèle de transaction, où les mises à jour associées peuvent être regroupées en unités arbitraires. Bien que cela ne soit pas toujours nécessaire, il s'agit d'une fonctionnalité pratique, et parfois essentielle, dans certains domaines de problèmes.

Synchronisation/Asynchronisation

Certaines API de stockage sont synchrones, c'est-à-dire que les requêtes de stockage ou de récupération bloquent le thread actuellement actif jusqu'à ce que la requête soit terminée. Cela est particulièrement lourd dans les navigateurs Web, où la requête de stockage partage le thread principal avec l'UI. Pour des raisons d'efficacité et de performances, les API de stockage asynchrones sont à privilégier.

Déboguer le stockage dans les outils pour les développeurs Chrome

Consultez les documents suivants pour en savoir plus sur l'utilisation des outils pour les développeurs Chrome afin d'inspecter et de déboguer l'API de stockage Web de votre choix. Les API non mentionnées ici ne sont pas compatibles avec DevTools ou ne sont pas applicables.

Si vous utilisez plusieurs API de stockage, consultez la fonctionnalité "Effacer l'espace de stockage" de DevTools. Cette fonctionnalité vous permet de supprimer plusieurs magasins en un seul clic. Pour en savoir plus, consultez la section Vider les service workers, le stockage, les bases de données et les caches.

Étapes suivantes :

Maintenant que nous avons passé en revue certaines des façons pertinentes d'envisager les mécanismes de stockage et comparé les API et les services les plus populaires disponibles aujourd'hui, nous allons bientôt ajouter d'autres contenus pour approfondir un ou plusieurs sujets d'intérêt: