Freigeben über


ContentPrefetcher Klasse

Definition

Stellt Eigenschaften zum Angeben von Webressourcen bereit, die vorab abgerufen werden sollen. Windows verwendet Heuristiken, um zu versuchen, die angegebenen Ressourcen herunterzuladen, bevor Ihre App vom Benutzer gestartet wird.

public ref class ContentPrefetcher abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ContentPrefetcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public static class ContentPrefetcher
Public Class ContentPrefetcher
Vererbung
Object Platform::Object IInspectable ContentPrefetcher
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Hinweise

Viele Kategorien von Apps müssen beim Start erhebliche Mengen von Webinhalten herunterladen. Dies kann zu einer schlechten Benutzererfahrung führen, bei der Benutzer auf das Laden von Inhalten warten müssen, bevor die App voll funktionsfähig ist. Die ContentPrefetcher-Klasse bietet Mechanismen zum Angeben von Ressourcen, die Windows vor dem Starten ihrer App herunterladen soll.

Heuristiken werden verwendet, um zu bestimmen, wann prefetching erfolgen soll und welche Ressourcen heruntergeladen werden. Diese Heuristiken berücksichtigen die Netzwerk- und Energiebedingungen des Systems, den Nutzungsverlauf der Benutzer-App und die Ergebnisse früherer Vorabstartversuche, um maximalen Benutzernutzen zu bieten. Es gibt jedoch keine Garantie dafür, dass eine bestimmte Ressource vor dem Start einer bestimmten App heruntergeladen wurde.

Ressourcen, die erfolgreich vorab eingestellt wurden, werden im app-spezifischen WinINet-Cache abgelegt. Nach der Ausführung der App sind keine Änderungen an vorhandenen HTTP-Anforderungen für diese Ressourcen erforderlich. WinINet stellt den Inhalt einfach transparent aus dem Cache bereit, wenn er verfügbar ist. Für den Fall, dass eine angeforderte Ressource nicht vorab abgerufen wurde, führt eine HTTP-Anforderung für Inhalte einfach zu einem Cachefehler, und die Anforderung wird an den Server gestellt. Beachten Sie, dass diese Zwischenspeicherungsstrategie für HTTP-Anforderungen funktioniert, die über die WinJS.xhr-, Windows.Web.Http.HttpClient- und IXMLHTTPRequest2-Schnittstelle erfolgen. Der .NET Framework HttpClient wird nicht unterstützt.

Die ContentPrefetcher-Klasse bietet zwei Mechanismen zum Angeben von Ressourcen, die vorab eingestellt werden sollen:

  • Die ContentUris-Eigenschaft ermöglicht eine direkte clientseitige Spezifikation von Ressourcen, die vorab abgerufen werden können. Dies ist nützlich für Inhalte mit relativ statischen URIs, da sie sich zwischen der späteren Verwendung der Anwendung nicht ändern. Ein Beispiel wären die URIs, die Abschnitten einer App zugeordnet sind, die ein Benutzer abonniert hat und die sich nur ändern würden, wenn der Benutzer seine Abonnementoptionen mit der Anwendung aktualisiert.
  • Die IndirectContentUri-Eigenschaft bietet die Angabe des Speicherorts einer XML-Datei, in der Ressourcen aufgelistet werden, die vorab abgerufen werden sollen. Die Ressourcen, die vorab abgerufen werden sollen, können dann dynamisch aktualisiert werden, indem der Inhalt des XML-Codes geändert wird. Dies ist nützlich in Fällen, in denen Inhalte dynamischer sind, da erwartet wird, dass sich die Inhalts-URIs zwischen der späteren Verwendung der Anwendung ändern.

Ein Beispiel wäre das Vorabfetching von Bildern für die neuesten Nachrichtenartikel, die Nachrichtenartikel und die entsprechenden Bilder ändern sich häufig, und die XML-Datei kann mit den neuesten URIs auf dem neuesten Stand gehalten werden, die vorab abgerufen werden sollen. Apps können beide Eigenschaften verwenden, um Ressourcen anzugeben, die vorab abgerufen werden sollen. Beachten Sie, dass maximal 40 Inhalts-URIs unterstützt werden und ressourcen, die über die ContentUri-Eigenschaft angegeben werden, bevorzugt auf die im IndirectContentUri-XML angegebenen Ressourcen heruntergeladen werden. Sie sollten dem Vorabfetching von Inhalten priorisieren, die einem Benutzer zuerst angezeigt werden oder die ein Benutzer häufig verwendet, um den größten Nutzen aus dem Prefetching-Vorgang zu erzielen. Sie sollten Inhalte angeben, die eine relativ lange Lebensdauer für Ihre App aufweisen. Stellen Sie keine Inhalte vor, die eine sofortige oder sehr kurze Ablaufzeit aufweisen, oder Inhalte, die nach kurzer Zeit aus der Sicht eines Benutzers eingestellt würden. Kurzlebige Inhalte sind eine schlechte Wahl für vorab abgerufene Inhalte, da es wahrscheinlich ist, dass der Inhalt abläuft oder nicht angezeigt wird, bevor die App verwendet wird und daher kein Vorteil für Benutzer ist.

Wie oben erwähnt, bestimmt das System, wann eine Vorabfetching für eine App ausgeführt wird. Zu Entwicklungszwecken können Sie jedoch einen sofortigen Prefetch für Ihre App initiieren, indem Sie die Desktop-API der IContentPrefetcherTaskTrigger-Schnittstelle aufrufen.

Zur Unterstützung des Debuggens können Sie ETW-Ereignisse im Kanal Microsoft-Windows-BackgroundTransfer-ContentPrefetcher lauschen. Vorkommen wie Initiierung und Abschluss von Prefetching, Initiierung und Abschluss einer HTTP-Anforderung und XML-Validierung lösen Ereignisse aus.

Eigenschaften

ContentUris

Array von URIs zum Herunterladen, wenn der Prefetch für die App ausgeführt wird.

IndirectContentUri

Gibt den Speicherort einer wohlgeformten XML-Datei an, die eine Liste der Ressourcen enthält, die vorab abgerufen werden sollen.

LastSuccessfulPrefetchTime

Ruft das Datum und die Uhrzeit des letzten erfolgreichen Inhalts prefetch-Vorgangs ab.

Gilt für: