ContentPrefetcher クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
プリフェッチする Web リソースを指定するためのプロパティを提供します。 Windows はヒューリスティックを使用して、ユーザーがアプリを起動する前に、指定されたリソースのダウンロードを試みます。
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
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
注釈
アプリの多くのカテゴリでは、起動時に大量の Web コンテンツをダウンロードする必要があります。 これにより、アプリが完全に機能する前に、ユーザーがコンテンツの読み込みを待つ必要があるユーザー エクスペリエンスが低下する可能性があります。 ContentPrefetcher クラスは、ユーザーがアプリを起動する前に Windows がダウンロードを試みるリソースを指定するためのメカニズムを提供します。
ヒューリスティックは、プリフェッチをいつ行う必要があり、どのリソースをダウンロードするかを決定するために使用されます。 これらのヒューリスティックでは、システム ネットワークと電源の状態、ユーザー アプリの使用状況履歴、およびプリフェッチが最大のユーザー特典を提供しようとした結果が考慮されますが、特定のアプリの起動前に特定のリソースがダウンロードされる保証はありません。
プリフェッチに成功したリソースは、アプリ固有の WinINet キャッシュに配置されます。 アプリの実行後、これらのリソースに対する既存の HTTP 要求に対する変更は必要ありません。 WinINet は、キャッシュからコンテンツを透過的に提供します (使用可能な場合)。 要求されたリソースがプリフェッチされなかった場合、コンテンツに対する HTTP 要求は単にキャッシュ ミスになり、サーバーに対して要求が行われます。 このキャッシュ戦略は、WinJS.xhr、Windows.Web.Http.HttpClient、および IXMLHTTPRequest2 インターフェイスを使用して行われた HTTP 要求に対して機能することに注意してください。 .NET Framework HttpClient はサポートされていません。
ContentPrefetcher クラスには、プリフェッチする必要があるリソースを指定するための 2 つのメカニズムが用意されています。
- ContentUris プロパティを使用すると、プリフェッチするリソースをクライアント側で直接指定できます。 これは、アプリケーションの後続の使用間で変更されないという点で、かなり静的な URI を持つコンテンツに役立ちます。 たとえば、ユーザーがサブスクライブしているアプリのセクションに関連付けられている URI は、ユーザーがアプリケーションでサブスクリプション オプションを更新した場合にのみ変更されます。
- IndirectContentUri プロパティを使用すると、プリフェッチするリソースを一覧表示する XML ファイルの場所を指定できます。 プリフェッチするリソースは、XML の内容を変更することで動的に更新できます。 これは、コンテンツ URI がアプリケーションの後続の使用間で変更されることが予想されるという点で、コンテンツがより動的な場合に役立ちます。
たとえば、最新のニュース記事のイメージをプリフェッチしたり、ニュース記事や対応する画像を頻繁に変更したり、XML ファイルを最新の URI でプリフェッチしたりできます。 アプリでは、両方のプロパティを使用してプリフェッチするリソースを指定できます。 最大 40 個のコンテンツ URI がサポートされており、 ContentUri プロパティで指定されたリソースは 、IndirectContentUri XML で指定されたものより優先してダウンロードされることに注意してください。 プリフェッチ操作を最大限に活用するには、ユーザーが最初に表示するコンテンツ、またはユーザーが頻繁に使用するコンテンツのプリフェッチに優先順位を付ける必要があります。 アプリの有効期間が適度に長いコンテンツを指定する必要があります。 即時または非常に短い有効期限を持つコンテンツ、または短時間でユーザーのビューから削除されるコンテンツをプリフェッチしないでください。 短命コンテンツは、アプリが使用される前にコンテンツが期限切れになるか表示されない可能性があるため、プリフェッチされたコンテンツには適していません。そのため、ユーザーにとってメリットはありません。
前述のように、プリフェッチがアプリに対して実行されるタイミングがシステムによって決定されます。 ただし、開発目的では、 IContentPrefetcherTaskTrigger インターフェイス デスクトップ API を呼び出すことによって、アプリの即時プリフェッチを開始できます。
デバッグを支援するために、 Microsoft-Windows-BackgroundTransfer-ContentPrefetcher チャネルで ETW イベントをリッスンできます。 プリフェッチの開始と完了、HTTP 要求の開始と完了、XML 検証などの出現によってイベントがトリガーされます。
プロパティ
ContentUris |
アプリに対してプリフェッチが実行されたときにダウンロードする URI の配列。 |
IndirectContentUri |
プリフェッチするリソースのリストを含む整形式 XML ファイルの場所を指定します。 |
LastSuccessfulPrefetchTime |
最後に成功したコンテンツ プリフェッチ操作の日時を取得します。 |