So wird’s gemacht: Verwenden der Datenzwischenspeicherung bei Netzwerkvorgängen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesem Thema erfahren Sie, wie Sie die Datenzwischenspeicherung bei Netzwerkvorgängen in einer Windows-Runtime-App verwenden.

Zwischenspeichern von Netzwerkinhalten als App-Daten

Die Speicherung von Inhalten auf Datenträger ermöglicht eine schnelle, flüssige Reaktion und Bedienung Ihrer App, wenn sie z. B. unerwartet beendet wird oder ein Netzwerk nur beschränkt verwendet werden kann. Eine Lese-App für RSS-Feeds kann beispielsweise umgehend Feeds anzeigen, die aus einer vorherigen Sitzung auf dem Datenträger zwischengespeichert wurden. Sobald aktuelle Feeds zur Verfügung stehen, kann die App ihre Inhalte aktualisieren. Dadurch wird sichergestellt, dass der Benutzer direkt nach dem Start Inhalte anzeigen kann, während er auf neue Inhaltsaktualisierungen wartet.

Windows 8.1 stellt die ApplicationData-Klasse im Windows.Storage-Namespace bereit. Diese Klasse ermöglicht den Zugriff auf den App-Datenspeicher. Anwendungsdaten sind änderbare Daten, die für eine bestimmte App spezifisch sind. Dazu zählen der Laufzeitstatus, die Benutzereinstellungen und weitere Einstellungen. Anwendungsdaten werden erstellt, gelesen, aktualisiert und gelöscht, wenn die betreffende App ausgeführt wird. Weitere Informationen finden Sie unter Zugreifen auf App-Daten mit der Windows-Runtime.

Von Ihrer App durch Netzwerkvorgänge übertragene Dateien können als App-Daten im Ordner Roaming, Local oder Temporary zwischengespeichert werden.

Hinweis  Windows Phone 8.1 verfügt außerdem über einen speziellen Cache-Ordner für Dateien, die absichtlich von Ihrer App gespeichert oder entfernt werden.

 

Ordner Beschreibung
Lokal

Die Dateien bleiben auf dem Computer, auf dem sie ursprünglich geschrieben wurden, und werden nicht mit anderen Geräten synchronisiert.

Temporär

Dateien können gelöscht werden, wenn sie nicht verwendet werden. Das System berücksichtigt Faktoren wie verfügbare Datenträgerkapazität und Alter einer Datei, um zu ermitteln, wann oder ob eine temporäre Datei gelöscht werden soll.

Roaming

Dateien werden mit Geräten synchronisiert, auf denen sich Benutzer mit verbundenen Konten angemeldet haben. Das Roaming von Dateien findet nicht umgehend statt. Vom System werden beim Ermitteln des Sendezeitpunkts der Daten verschiedene Faktoren abgewogen.

Die Verwendung von Roamingdaten sollte das Kontingent (definiert durch die RoamingStorageQuota-Eigenschaft) nicht überschreiten. Andernfalls wird das Roaming von Daten angehalten. Das Roaming von Dateien ist nicht möglich, solange eine App in die Dateien schreibt. Denken Sie daher daran, nicht mehr benötigte Dateiobjekte Ihrer App zu schließen.

 

Die unten aufgeführten Codeausschnitte veranschaulichen das Zwischenspeichern einer Serverantwort (in Form einer TXT-Datei) aus einem Netzwerkvorgang als App-Daten im Ordner "Roaming". Anschließend zeigt der Code, wie Sie mit dem zugeordneten Dateinamen zwischengespeicherte Inhalte abrufen.

Beispiele

Als Erstes definieren wir einen Verweis auf den Ordner Roaming. Als Nächstes erstellt unser cacheResponse-Beispiel eine neue Datei im Ordner "Roaming". Dabei wird angegeben, dass vorhandene Dateien mit demselben Namen ersetzt werden sollen. Nachdem die Datei erstellt wurde, werden die Inhalte der ursprünglich mit der Serverantwort zurückgegebenen Datei in die neue Datei serverResponse.txt geschrieben.

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);
        });
}

Um später auf die zwischengespeicherte Datei serverResponse.txt zuzugreifen, ruft unser getCachedResponse-Beispiel die Datei anhand des Namens (angegeben durch filename) ab und zeigt den darin enthaltenen Text an.


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
        });
}

Das Zwischenspeichern des Inhalts der Serverantwort als App-Daten beschleunigt den Zugriff und ermöglicht eine schnelle Anzeige nach dem Beenden und erneuten Starten der App. Weitere Informationen zum Schreiben von Einstellungen in den App-Datenspeicher und Reagieren auf Roamingereignisse finden Sie unter Verwalten von App-Daten, oder laden Sie das Beispiel für Anwendungsdaten herunter.

Verwandte Themen

Beispiel für Anwendungsdaten

Schnellstart: Lokale App-Daten

Schnellstart: Roaming von App-Daten

Schnellstart: Temporäre App-Daten

Richtlinien für das Roaming von App-Daten