ContentPrefetcher Classe

Definizione

Fornisce le proprietà per specificare le risorse Web da prelettura. Windows userà l'euristica per tentare di scaricare le risorse specificate prima dell'avvio dell'app da parte dell'utente.

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
Ereditarietà
Object Platform::Object IInspectable ContentPrefetcher
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Commenti

Molte categorie di app devono scaricare quantità significative di contenuto Web al momento dell'avvio. Ciò può comportare esperienze utente scarse in cui gli utenti devono attendere il caricamento del contenuto prima che l'app diventi completamente funzionante. La classe ContentPrefetcher fornisce meccanismi per specificare le risorse che Windows deve tentare di scaricare prima dell'avvio dell'app da parte dell'utente.

L'euristica viene usata per determinare quando deve verificarsi la prelettura e quali risorse verranno scaricate. Queste euristiche tengono conto delle condizioni di rete e alimentazione del sistema, della cronologia di utilizzo delle app utente e dei risultati dei tentativi di prelettura precedenti per offrire il massimo vantaggio utente, ma non vi è alcuna garanzia che qualsiasi risorsa specifica sia stata scaricata prima di un determinato avvio dell'app.

Le risorse che sono state prelette correttamente verranno inserite nella cache WinINet specifica dell'app. Non sono necessarie modifiche alle richieste HTTP esistenti per queste risorse dopo l'esecuzione dell'app; WinINet servirà semplicemente in modo trasparente il contenuto dalla cache, se disponibile. Nel caso in cui una risorsa richiesta non sia stata prelettura, una richiesta HTTP per il contenuto comporta semplicemente un mancato riscontro nella cache e la richiesta viene effettuata al server. Si noti che questa strategia di memorizzazione nella cache funziona per le richieste HTTP effettuate tramite l'interfaccia WinJS.xhr, Windows.Web.Http.HttpClient e IXMLHTTPRequest2 . .NET Framework HttpClient non è supportato.

La classe ContentPrefetcher fornisce due meccanismi per specificare le risorse da prelettura:

  • La proprietà ContentUris consente la prelettura della specifica diretta lato client delle risorse. Ciò è utile per il contenuto con URI abbastanza statici in quanto non cambiano tra l'uso successivo dell'applicazione. Un esempio è costituito dagli URI associati alle sezioni di un'app a cui un utente viene sottoscritto, che cambia solo quando l'utente aggiorna le opzioni di sottoscrizione con l'applicazione.
  • La proprietà IndirectContentUri consente di specificare il percorso di un file XML che elenca le risorse da preletturare. Le risorse di prelettura possono quindi essere aggiornate dinamicamente modificando il contenuto del codice XML. Ciò è utile nei casi in cui il contenuto è più dinamico in quanto si prevede che gli URI del contenuto cambino tra l'uso successivo dell'applicazione.

Un esempio è il prelettura delle immagini per gli articoli di notizie più recenti, gli articoli di notizie e le immagini corrispondenti cambiano frequentemente e il file XML può essere mantenuto aggiornato con gli URI più recenti per la prelettura. Le app possono usare entrambe le proprietà per specificare le risorse da prelettura. Si noti che sono supportati un massimo di 40 URI di contenuto e le risorse specificate tramite la proprietà ContentUri verranno scaricate in preferenza a quelle specificate dal codice XML IndirectContentUri . È consigliabile classificare in ordine di priorità il contenuto visualizzato prima da un utente o che un utente usa di frequente per ottenere il massimo vantaggio dall'operazione di prelettura. Devi indicare il contenuto che ha una durata ragionevolmente lunga per la tua app. Non eseguire il prelettura del contenuto con scadenza immediata o molto breve o contenuto che verrebbe ritirato dalla visualizzazione di un utente in un breve periodo di tempo. Il contenuto di breve durata è una scelta scarsa per il contenuto prelettura perché è probabile che il contenuto scada o non venga visualizzato prima che l'app venga usata e quindi non sia un vantaggio per gli utenti.

Come accennato in precedenza, il sistema determina quando viene eseguita la prelettura per un'app. Ai fini dello sviluppo, tuttavia, è possibile avviare un prelettura immediato per l'app chiamando l'API desktop dell'interfaccia IContentPrefetcherTaskTrigger .

Per facilitare il debug, puoi ascoltare gli eventi ETW nel canale Microsoft-Windows-BackgroundTransfer-ContentPrefetcher . Occorrenze come l'avvio e il completamento del prelettura, l'avvio e il completamento di una richiesta HTTP e la convalida XML attiveranno eventi.

Proprietà

ContentUris

Matrice di URI da scaricare quando viene eseguita la prelettura per l'app.

IndirectContentUri

Specifica il percorso di un file XML ben formato che contiene un elenco di risorse da preletturare.

LastSuccessfulPrefetchTime

Ottiene la data e l'ora dell'ultima operazione di prelettura del contenuto completata.

Si applica a