Effizientes Verwenden von Zuständen

Effizientes Speichern und Abrufen des Zustands (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]

Es gibt viele verschiedene Möglichkeiten, den Zustand einer Windows Store-App mit JavaScript zu speichern. Hier erfahren Sie, wann Sie welche Speicheroptionen verwenden sollten, um die bestmöglichen Ergebnisse zu erzielen.

Bedenken Sie beim Abwägen der verschiedenen Speicheroptionen, dass das System bei jedem Speicher- oder Zustandsmechanismus zusätzliche Ressourcen und Komponenten laden muss. Da diese Ressourcen und Komponenten den Aufwand für die App erhöhen, wird empfohlen, die Anzahl der von der App verwendeten Zustands- und Speichermechanismen zu minimieren.

Sitzungszustand

Verwenden Sie für Sitzungsdaten wie globale Variablen, die den Kern der Logik einer App bilden, das WinJS.Application.sessionState-Objekt. Dieses Objekt ist eine speicherinterne Datenstruktur zum Speichern von Werten, die sich häufig ändern und auch dann erhalten bleiben müssen, wenn das System den Prozess beendet. Es wird automatisch in das Dateisystem serialisiert, wenn die App angehalten wird, und bei Reaktivierung der App automatisch neu geladen. Mithilfe von WinJS.Application.sessionState können Sie die Anzahl aufwendiger Dateivorgänge Ihrer App verringern.

Roamingeinstellungen

Verwenden Sie den Roamingdatenspeicher, um grundlegende App-Einstellungen wie Farb- und Designeinstellungen zu speichern. Es wird empfohlen, diesen Speicher für Einstellungen zu verwenden, die häufig geändert werden. Verwenden Sie Roamingeinstellungen für Werte, die sich nur selten ändern und zwischen App-Starts erhalten bleiben müssen. Verwenden Sie für sich häufig ändernde Daten stattdessen den Sitzungszustand (das WinJS.Application.sessionState-Objekt).

Verwenden Sie Windows.Storage.ApplicationData.current.roamingSettings, um auf den Datenspeicher für lokale Einstellungen zuzugreifen.

Lokale Einstellungen

Verwenden Sie den lokalen Datenspeicher, um grundlegende App-Einstellungen wie Farb- und Designeinstellungen zu speichern. Da dieser Datenspeicher im Falle einer Wertänderung auf den Datenträger geschrieben wird (abhängig von der Datenträgerzwischenspeicherung), empfiehlt es sich, ihn nicht für Einstellungen zu verwenden, die sich häufig ändern. Verwenden Sie lokale Einstellungen für Werte, die sich nur selten ändern und von einem App-Start zum nächsten erhalten bleiben müssen. Für sich häufig ändernde Daten empfiehlt sich die Verwendung des Sitzungszustands (WinJS.Application.sessionState-Objekt).

Verwenden Sie Windows.Storage.ApplicationData.current.localSettings, um auf den Datenspeicher für lokale Einstellungen zuzugreifen.

Lokaler Speicher

Verwenden Sie WinJS.Application.local, um große Mengen an App-Daten zu speichern oder um Daten umgehend in eine Datei zu speichern. Verwenden Sie den lokalen Speicher nicht zum Ausführen kleiner Lese- und Schreibvorgänge.

Der Zugriff auf lokale Einstellungen ist über die APIs WinJS.Application.local und Windows.Storage.ApplicationData möglich.

IndexedDB

Mit IndexedDB können Windows Store-Apps mit JavaScript ganz einfach Schlüssel-Wert-Paare in einer Datenbank speichern. IndexedDB ist für große Datenmengen geeignet. Verwenden Sie IndexedDB für die Verwaltung von Schlüssel-Wert-Paaren, da diese Methode schneller ist als die Implementierung eines eigenen Systems. Bei Verwendung der IndexedDB-APIs wird ein vollständiges Datenbankmodul initialisiert. Verwenden Sie IndexedDB daher nicht, wenn Sie lediglich einige wenige Felder speichern müssen. Zum Speichern kleinerer Datenmengen sind Sitzungszustand oder lokaler Speicher besser geeignet.

Der Zugriff auf IndexedDB erfolgt über die msIndexedDB-Eigenschaft.

Beispielanwendung

Damit Sie genau verstehen, wann die einzelnen Speicheroptionen am besten eingesetzt werden, sehen wir uns im Anschluss eine Beispiel-App an.

Hinweis  Dieses Beispiel zeigt, wie die App die einzelnen Speicheroptionen nutzen kann. Das Beispiel dient nur zur Veranschaulichung. Aufgrund des Zusatzaufwands beim Laden der Binärdateien, die den einzelnen Speicheroptionen zugeordnet sind, raten wir davon ab, jede Speicheroption zu verwenden, wenn sich einige kombinieren lassen.
 

Stellen Sie sich eine einfache App zum Verwalten der Kontakte eines Benutzers vor. Der Benutzer kann Kontakte hinzufügen und entfernen sowie nach Kontakten suchen. Für jeden Kontakt kann der Benutzer grundlegende Infos angeben und Bilder zuordnen.

Im Anschluss finden Sie eine Liste mit den geeigneten Speicheroptionen für die unterschiedlichen Datentypen:

  • Speichern der Benutzereinstellungen

    Die App hat Einstellungen, die der Benutzer ändern kann (beispielsweise die Hintergrundfarbe und den Schriftgrad). Die App liest diese Einstellungen beim Start und zieht sie zur Initialisierung der Darstellung heran. Da es sich bei den Einstellungen um einen wichtigen Teil der App handelt und sich die Einstellungen nur selten ändern, können Sie diese Infos mithilfe lokaler Einstellungen speichern.
  • Speichern des zuletzt angezeigten Kontakts

    Der Benutzer navigiert durch verschiedene Kontakte und wechselt dann zu einem Ort außerhalb der App. Wenn der Benutzer später zurückkehrt, zeigt die App den gleichen Kontakt an. Der zuletzt angezeigte Kontakt ändert sich häufig. Verwenden Sie daher zum Speichern des zuletzt angezeigten Kontakts den Sitzungszustand.
  • Speichern von Kontakten und grundlegenden Infos

    Der Benutzer möchte seine Kontakte schnell und einfach durchsuchen können. Speichern Sie Kontaktinfos mithilfe von IndexedDB. IndexedDB eignet sich perfekt zum Speichern großer Datenmengen und stellt die schnellste Möglichkeit zum Durchsuchen der Daten dar.
  • Speichern der Bilder eines Kontakts

    Da Bilder von Kontakten recht groß ausfallen können, verwenden Sie nicht den Sitzungszustand oder lokale Einstellungen. Verwenden Sie stattdessen entweder IndexedDB oder lokalen Speicher. Mit diesen Optionen kann die App Binärdaten serialisieren und abrufen.

 

 

Anzeigen:
© 2017 Microsoft