Come usare la cache di dati durante le operazioni di rete (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
Questo argomento illustra come usare la cache di dati con le operazioni di rete in un'app di Windows Runtime.
Memorizzazione del contenuto di rete nella cache come dati dell'app
La memorizzazione di contenuto su disco permette alle tue app di funzionare in modo rapido ed efficiente nei casi in cui un'app si interrompe in modo imprevisto o l'uso della rete è limitato. Ad esempio, un'app per la lettura di feed RSS può visualizzare immediatamente feed memorizzati nella cache su disco da una sessione precedente. Quando sono disponibili i feed più recenti, l'app può aggiornare il proprio contenuto. In questo modo, si garantisce all'utente la disponibilità di contenuto da esaminare immediatamente all'avvio, in attesa degli aggiornamenti con il nuovo contenuto.
Nello spazio dei nomi Windows.Storage di Windows 8.1 è disponibile la classe ApplicationData, che consente l'accesso all'archivio dati dell'app. I dati dell'applicazione sono dati variabili specifici di una determinata app. Includono lo stato di runtime, le preferenze utente e altre impostazioni. I dati dell'applicazione vengono creati, letti, aggiornati ed eliminati quando l'app è in esecuzione. Per altre informazioni, vedi Accesso ai dati dell'app con Windows Runtime.
I file trasferiti dalla tua app attraverso operazioni di rete possono essere memorizzati nella cache come dati dell'app nella cartella Roaming, Local o Temporary.
Nota Windows Phone 8.1 include anche una cartella speciale Cache per i file per i file intenzionalmente salvati o rimossi dall'app.
Cartella | Descrizione |
---|---|
Locali | I file restano nella macchina su cui sono stati originariamente scritti e non vengono sincronizzati con altri dispositivi. |
Temporanei | I file non utilizzati sono soggetti a eliminazione. Per stabilire se e quando eliminare un file temporaneo il sistema prende in esame fattori quali lo spazio disponibile su disco e la data di creazione del file. |
Dati mobili | I file vengono sincronizzati sui dispositivi a cui gli utenti hanno effettuato l'accesso con account connessi. Il roaming dei file non è immediato. Nel determinare la destinazione dei dati il sistema esamina diversi fattori. L'uso dei dati mobili deve essere mantenuto sotto la quota specificata dalla proprietà RoamingStorageQuota. In caso contrario, il roaming dei dati verrà sospeso. Non è possibile eseguire il roaming dei file quando un'app li sta ancora scrivendo. Perciò, assicurati di chiudere gli oggetti file dell'app quando non sono più necessari. |
I frammenti di codice qui di seguito mostrano la memorizzazione nella cache della risposta di un server, sotto forma di file di testo da un'operazione di rete e come dati dell'app nella cartella Dati mobili. Il codice quindi dimostra come recuperare il contenuto memorizzato nella cache usando il nome file associato.
Esempi
Prima di tutto dobbiamo definire un riferimento alla cartella Roaming. Quindi, il nostro esempio cacheResponse crea un nuovo file all'interno della cartella Dati mobili e indica che bisogna sostituire tutti i file esistenti con lo stesso nome. Dopo che il file è stato creato i contenuti vengono scritti nel nuovo file serverResponse.txt dal file originariamente restituito dalla risposta del server.
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);
});
}
Per accedere in un secondo tempo al file serverResponse.txt memorizzato nella cache, il nostro esempio getCachedResponse recupera il file in base al nome, definito da filename, e visualizza il testo che contiene.
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
});
}
La memorizzazione nella cache dei contenuti inclusi nella risposta del server come dati dell'app consente di accedere e visualizzare rapidamente i contenuti dopo l'interruzione e il riavvio di un'app. Per altre informazioni sulla scrittura di impostazioni nell'archivio dei dati dell'app e su come rispondere agli eventi di roaming, leggi Gestione dei dati dell'applicazione o scarica l'esempio di dati dell'applicazione.
Argomenti correlati
Esempio di dati dell'applicazione
Guida introduttiva: Dati locali dell'app
Guida introduttiva: Dati mobili dell'app