Présentation du stockage Web

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

Cet article fournit une brève base sur l'évaluation des API et des services de stockage, puis un tableau comparatif et quelques conseils généraux. Dans un avenir proche, nous prévoyons d'ajouter des ressources pour mieux comprendre les sujets de stockage sélectionnés.

Taxonomie de stockage

Voyons d'abord certaines des dimensions grâce auxquelles nous pouvons analyser le stockage de données pour les applications Web. Nous utiliserons plus tard 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 d'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, le coût et les performances des requêtes de stockage et de récupération.

  • Structurées:les données stockées dans des tables avec des champs prédéfinis, comme c'est le cas avec les systèmes de gestion de bases de données basés sur SQL, se prêtent bien aux requêtes flexibles et dynamiques, pour lesquelles la gamme complète des types de requêtes peut ne pas être connue a priori. IndexedDB est un exemple important 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 à l'aide d'une clé unique. Les datastores clé-valeur ressemblent à des tables de hachage, dans la mesure où ils permettent un accès en temps constant aux données indexées et opaques. L'API Cache dans le navigateur et Apache Cassandra sur le serveur sont de parfaits exemples de datastores clé/valeur.

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

Persistance

Les méthodes de stockage pour les applications Web peuvent être analysées en fonction du champ d'application auquel les données sont rendues persistantes.

  • Persistance des sessions:les données de cette catégorie ne sont conservées que tant qu'une session Web ou qu'un seul onglet de 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 particulier. 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 pour l'ensemble des sessions et des appareils. Il s'agit donc de la forme la plus robuste de persistance des données. Google Cloud Storage est un exemple de mécanisme de stockage avec persistance globale.

Navigateurs pris en charge

Les développeurs doivent choisir l'API la mieux adaptée à leur domaine problématique. 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 longues et à être plus largement prises en charge. Ils peuvent également bénéficier d'une base de connaissances et d'un écosystème de développeurs plus riches.

Transactions

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

Synchronisation/Asynchrone

Certaines API de stockage sont synchrones dans le sens où 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 asynchrone sont à privilégier.

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

Consultez la documentation suivante 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 les outils de développement ou ne sont pas applicables.

Si vous utilisez plusieurs API de stockage, découvrez la fonctionnalité Effacer l'espace de stockage des outils de développement. Cette fonctionnalité vous permet de vider plusieurs magasins d'un simple clic sur le bouton. Pour en savoir plus, consultez la section Effacer les service workers, l'espace de stockage, les bases de données et les caches.

Étapes suivantes

Maintenant que nous avons examiné certaines des façons pertinentes d'aborder les mécanismes de stockage et comparé les API et services les plus populaires disponibles aujourd'hui, nous ajouterons bientôt d'autres contenus pour approfondir un ou plusieurs sujets qui vous intéressent: