Partager via


ContentPrefetcher Classe

Définition

Fournit des propriétés permettant de spécifier les ressources web à prérécupérer. Windows utilise l’heuristique pour tenter de télécharger les ressources spécifiées avant le lancement de votre application par l’utilisateur.

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
Héritage
Object Platform::Object IInspectable ContentPrefetcher
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

De nombreuses catégories d’applications doivent télécharger des quantités importantes de contenu web au lancement. Cela peut entraîner des expériences utilisateur médiocres où les utilisateurs doivent attendre que le contenu se charge avant que l’application ne devienne entièrement fonctionnelle. La classe ContentPrefetcher fournit des mécanismes permettant de spécifier les ressources que Windows doit tenter de télécharger avant le lancement de votre application par l’utilisateur.

Les heuristiques sont utilisées pour déterminer quand la prérécupération doit se produire et quelles ressources seront téléchargées. Ces heuristiques prennent en compte le réseau système et les conditions d’alimentation, l’historique d’utilisation de l’application utilisateur et les résultats des tentatives préalables de préversion pour fournir un avantage maximal à l’utilisateur, mais il n’est pas garanti qu’une ressource particulière ait été téléchargée avant le lancement d’une application donnée.

Les ressources qui ont été correctement prérécupérées sont placées dans le cache WinINet spécifique à l’application. Aucune modification n’est nécessaire aux requêtes HTTP existantes pour ces ressources une fois l’application en cours d’exécution ; WinINet sert simplement de manière transparente le contenu du cache s’il est disponible. Dans le cas où une ressource demandée n’a pas été prérécupérée, une requête HTTP pour le contenu entraîne simplement une absence de cache, et la demande est envoyée au serveur. Notez que cette stratégie de mise en cache fonctionne pour les requêtes HTTP effectuées à l’aide de l’interface WinJS.xhr, Windows.Web.Http.HttpClient et IXMLHTTPRequest2 . HttpClient .NET Framework n’est pas pris en charge.

La classe ContentPrefetcher fournit deux mécanismes pour spécifier les ressources qui doivent être prédéfinies :

  • La propriété ContentUris permet une spécification directe côté client des ressources à préécupérer. Cela est utile pour le contenu avec des URI qui sont assez statiques, car ils ne changent pas entre l’utilisation ultérieure de l’application. Par exemple, les URI associés aux sections d’une application à laquelle un utilisateur est abonné ne changent que lorsque l’utilisateur met à jour ses options d’abonnement avec l’application.
  • La propriété IndirectContentUri permet de spécifier l’emplacement d’un fichier XML qui répertorie les ressources à prédécupérer. Les ressources à préécupérer peuvent ensuite être mises à jour dynamiquement en modifiant le contenu du code XML. Cela est utile dans les cas où le contenu est plus dynamique, car les URI de contenu sont censés changer entre l’utilisation ultérieure de l’application.

Par exemple, la préexéchtion d’images pour les derniers articles d’actualités, les articles d’actualité et les images correspondantes changent fréquemment et le fichier XML peut être tenu à jour avec les derniers URI à préexécter. Les applications peuvent utiliser les deux propriétés pour spécifier des ressources à préécupérer. Notez qu’un maximum de 40 URI de contenu sont pris en charge et que les ressources spécifiées via la propriété ContentUri seront téléchargées de préférence sur celles spécifiées par le XML IndirectContentUri . Vous devez hiérarchiser le contenu de prérécupération qu’un utilisateur voit pour la première fois, ou qu’un utilisateur utilise fréquemment afin de tirer le meilleur parti de l’opération de prérécupération. Vous devez indiquer le contenu qui a une durée de vie raisonnablement longue pour votre application. Ne prédéfinisez pas le contenu dont l’expiration est immédiate ou très courte, ni le contenu qui serait retiré de l’affichage d’un utilisateur dans un court laps de temps. Le contenu à courte durée de vie est un mauvais choix pour le contenu prééché, car il est probable que le contenu expire ou ne soit pas affiché avant l’utilisation de l’application et ne soit donc pas un avantage pour les utilisateurs.

Comme mentionné ci-dessus, le système détermine quand la prérécupération est effectuée pour une application. Toutefois, à des fins de développement, vous pouvez lancer une préversion immédiate pour votre application en appelant l’API de bureau de l’interface IContentPrefetcherTaskTrigger .

Pour faciliter le débogage, vous pouvez écouter les événements ETW sur le canal Microsoft-Windows-BackgroundTransfer-ContentPrefetcher . Des occurrences telles que l’initiation et l’achèvement de la prérécupération, l’initiation et l’achèvement d’une requête HTTP et la validation XML déclenchent des événements.

Propriétés

ContentUris

Tableau d’URI à télécharger lorsque la préversion est effectuée pour l’application.

IndirectContentUri

Spécifie l’emplacement d’un fichier XML bien formé qui contient une liste de ressources à prédécupérer.

LastSuccessfulPrefetchTime

Obtient la date et l’heure de la dernière opération de prérécupération de contenu réussie.

S’applique à