Comment utiliser la mise en cache de données pendant des opérations réseau (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Cette rubrique indique comment utiliser la mise en cache des données avec les opérations réseau dans une application Windows Runtime.

Mise en cache du contenu réseau en tant que données d’application

En stockant le contenu sur le disque, votre applique fonctionnera de façon optimale dans des situations où elle risque de s’arrêter ou si l’utilisation d’un réseau est limitée. Par exemple, une application de lecteur de flux RSS peut afficher immédiatement des flux qui ont été mis en cache sur le disque dans une session précédente. Une fois que les tout derniers flux sont disponibles, l’application peut mettre à jour son contenu. L’utilisateur disposera ainsi d’un contenu qui s’affichera immédiatement lors du lancement de l’application avant que du nouveau contenu soit disponible.

Windows 8.1 fournit la classe ApplicationData dans l’espace de noms Windows.Storage. Cette classe permet d’accéder au magasin de données d’application. Les données d’application sont des données mutables spécifiques à une application particulière. Elles comprennent l’état d’exécution, les préférences utilisateur et d’autres paramètres. Les données d’application sont créées, lues, mises à jour et supprimées lors de l’exécution de l’application. Pour plus d’informations, voir Accès aux données de l’application à l’aide de Windows Runtime.

Les fichiers transférés par votre application via des opérations réseau peuvent être mis en cache en tant que données d’application dans les dossiers Roaming, Local et Temporary :

Remarque  Windows Phone 8.1 inclut également un dossier Cache spécial pour les fichiers enregistrés ou supprimés de manière intentionnelle par votre application.

 

Dossier Description
Local

Les fichiers restent sur l’ordinateur sur lequel ils ont été créés et ils ne sont pas synchronisés avec d’autres périphériques.

Temporaire

Les fichiers sont supprimés lorsqu’ils ne sont pas utilisés. Le système prend en compte des facteurs tels que la capacité de disque disponible et l’ancienneté d’un fichier pour déterminer si un fichier temporaire doit être, ou non, supprimé.

Itinérant

Les fichiers sont synchronisés entre les périphériques auxquels les utilisateurs sont connectés avec des comptes connectés. L’itinérance de fichiers n’est pas instantanée ; le système prend en considération plusieurs facteurs pour déterminer à quel moment envoyer les données.

L’utilisation de données itinérantes doit rester en dessous du quota, défini par la propriété RoamingStorageQuota, sans quoi l’itinérance des données est suspendue. Des fichiers ne peuvent pas être déplacés pendant qu’une application est toujours en train d’écrire des données dans ces derniers. Par conséquent, veillez à fermer les objets fichier de votre application lorsqu’ils ne sont plus nécessaires.

 

Les extraits de code ci-dessous illustrent la mise en cache d’une réponse d’un serveur, sous la forme d’un fichier .txt provenant d’une opération réseau, en tant que données d’application dans le dossier Roaming. Le code montre ensuite comment récupérer le contenu mis en cache à l’aide du nom de fichier associé.

Exemples

Nous définissons d’abord une référence au dossier Roaming. Ensuite, notre exemple de cacheResponse crée un nouveau fichier dans le dossier Roaming et indique que tout fichier existant avec le même nom doit être remplacé. Une fois que le fichier est créé, du contenu est inséré dans le nouveau fichier serverResponse.txt à partir du fichier d’origine retourné avec la réponse du serveur.

var roamingFolder = Windows.Storage.ApplicationData.current.roamingFolder;
var filename = "serverResponse.txt";

function cacheResponse(strResponse) {
    roamingFolder.createFileAsync(filename, Windows.Storage.CreationCollisionOption.replaceExisting)
        .done(function (file) {
            return Windows.Storage.FileIO.writeTextAsync(file, strResponse);
        });
}

Pour accéder ultérieurement au fichier serverResponse.txt, notre exemple de getCachedResponse récupère le fichier à partir de son nom, qui est défini par filename, et affiche le texte qu’il contient.


function getCachedResponse() {
    roamingFolder.getFileAsync(filename)
        .then(function (file) {
            return Windows.Storage.FileIO.readTextAsync(file);
        }).done(function (response) {
            print(response);
        }, function () {
            // getFileAsync or readTextAsync failed. 
            // No cached response
        });
}

Le contenu mis en cache inclus avec la réponse du serveur en tant que données d’application s’affichera rapidement à la suite d’un arrêt et d’un redémarrage de l’application. Pour plus d’informations sur l’écriture de paramètres dans le magasin de données d’application et pour savoir comment répondre aux événements itinérants, lisez Gestion des données d’application ou téléchargez l’exemple de données d’application.

Rubriques associées

Exemple de données d’application

Démarrage rapide : données d’application locales

Démarrage rapide : données d’application itinérantes

Démarrage rapide : données d’application temporaires

Recommandations en matière de données d’application itinérantes