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 類別提供兩種機制來指定應該預先擷取的資源:
- 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 |
取得上次成功內容預先擷取作業的日期和時間。 |