BT

Votre opinion compte! Merci de bien vouloir répondre au sondage InfoQ!

Mode hors ligne avec LocalForage

| par João Paulo Marques Suivre 0 Abonnés , traduit par Eric Bellemon Suivre 0 Abonnés le 10 mars 2014. Durée de lecture estimée: 2 minutes |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

La Fondation Mozilla a sorti localForage, une nouvelle bibliothèque JavaScript qui permet de simplifier le processus de stockage hors ligne de données dans des applications web.

Bien que ce ne soit pas une technologie récente, le support de mode hors ligne a toujours été trop fragmenté à cause du trop grand nombre de choix disponibles. Ce qui rend cette librairie unique est qu'elle essaye de combiner le meilleur de chaque monde : les fonctionnalités issues des technologies les plus récentes (asynchrone et support des blobs) avec une API simpliste. Ceci permet de proposer des modes hors ligne puissants aux applications web, les rendant plus proches des applications mobiles et plus intuitives pour les développeurs.

Un des premiers choix disponibles était localStorage qui fournit une méthode simple pour accéder à du stockage hors ligne. Cependant, les tests ont montré qu'il était lent, synchrone et ne supportait pas les blobs (par exemple, pas de cache de fichier mp3 possible). Depuis, deux autres choix ont émergé, IndexedDB et Web SQL qui sont asynchrones, rapides et supportent un nombre important de types de données. L'inconvénient de ces deux technologies est que leurs APIs ne sont pas simples à utiliser et ne sont pas supportées par tous les navigateurs.

La sortie récente de localForage permet de contourner ces problèmes en unifiant les technologies (support de l'asynchrone et des blobs d'IndexedDB et Web SQL avec la syntaxe de localStorage) :

var settings = {color: 'black', font: 'Helvetica'};   
localForage.setItem('settings', settings, function(result) {   
console.log(result);   
});

L'ajout du support d'IndexedDB et Web SQL permet aux applications web de stocker plus de données que localStorage seul aurait permis. La nature non bloquante de leurs APIs rend les applications web plus rapides en ne bloquant pas le processus principal sur les appels get/set. En plus, localForage supporte les callbakcs et les Promises ES6 laissant le choix de l'implémentation aux développeurs.

La bibliothèque charge et gère les pilotes pour IndexedDB, Web SQL et localStorage afin de ne pas avoir à le traiter manuellement (le meilleur pilote est choisi indépendamment du navigateur où l'application s'exécute). Si IndexedDB et Web SQL ne sont pas disponibles, localForage se replie sur localStorage donc au minimum les données basiques peuvent être stockées hors ligne (donc sans le support des blobs et plus lent).

Tous les navigateurs modernes sont supportés par localForage. Le stockage asynchrone est disponible dans tous les navigateurs suivants avec leurs versions qui supportent localStorage entre parenthèses :

  • Navigateur Android 2.1
  • BlackBerry 7
  • Chrome 23 (Chrome 4.0 avec localStorage)
  • Chrome pour Android 32
  • Firefox 10 (Firefox 3.5 avec localStorage)
  • Firefox pour Android 25
  • IE 10 (IE 8 avec localStorage)
  • IE Mobile 10
  • Opera 15 (Opera 10.5 avec localStorage)
  • Opera Mobile 11
  • PhoneGap/Apache Cordova 1.2.0
  • Safari 3.1

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT