Поделиться через


ContentPrefetcher Класс

Определение

Предоставляет свойства для указания веб-ресурсов для предварительной выборки. 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
Наследование
Object Platform::Object IInspectable ContentPrefetcher
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Комментарии

Многие категории приложений должны загружать значительные объемы веб-содержимого при запуске. Это может привести к ухудшению взаимодействия с пользователем, когда пользователи должны ждать загрузки содержимого, прежде чем приложение станет полностью функциональным. Класс ContentPrefetcher предоставляет механизмы для указания ресурсов, которые Windows должна попытаться скачать до запуска приложения пользователем.

Эвристика используется для определения того, когда должна выполняться предварительная выборка и какие ресурсы будут загружены. Эти эвристики учитывают системные условия сети и питания, журнал использования пользовательских приложений и результаты предыдущих попыток предварительной выборки, чтобы обеспечить максимальное преимущество пользователя, но нет никакой гарантии, что какой-либо конкретный ресурс будет скачан до запуска данного приложения.

Ресурсы, которые были успешно подготовлены, будут помещены в кэш WinINet для конкретного приложения. После запуска приложения не требуется вносить изменения в существующие HTTP-запросы для этих ресурсов; WinINet будет просто прозрачно обслуживать содержимое из кэша, если оно доступно. В случае, если запрошенный ресурс не был предварительно выбран, HTTP-запрос на содержимое просто приводит к промаху кэша, и запрос выполняется к серверу. Обратите внимание, что эта стратегия кэширования работает для HTTP-запросов, выполненных с помощью интерфейса WinJS.xhr, Windows.Web.Http.HttpClient и IXMLHTTPRequest2 . HttpClient платформа .NET Framework не поддерживается.

Класс ContentPrefetcher предоставляет два механизма для указания ресурсов, которые следует предварительно получить:

  • Свойство ContentUris позволяет напрямую спецификацию ресурсов на стороне клиента для предварительной выборки. Это полезно для содержимого с URI, которое является довольно статическим, поскольку оно не изменяется между последующим использованием приложения. Например, URI, связанные с разделами приложения, на которые подписан пользователь, которые изменяются только при обновлении пользователем параметров подписки в приложении.
  • Свойство IndirectContentUri позволяет указать расположение XML-файла со списком ресурсов для предварительной выборки. Затем ресурсы для предварительной выборки можно динамически обновлять, изменив содержимое XML. Это полезно в тех случаях, когда содержимое является более динамическим, так как ожидается, что URI содержимого будут изменяться между последующим использованием приложения.

Примером может быть предварительная выборка изображений для последних новостных статей, частое изменение новостных статей и соответствующих изображений, а также актуальность XML-файла с использованием последних URI для предварительной выборки. Приложения могут использовать оба свойства для указания ресурсов для предварительной выборки. Обратите внимание, что поддерживается не более 40 URI содержимого, а ресурсы, указанные с помощью свойства ContentUri , будут скачиваться в соответствии с параметрами, указанными в XML-коде IndirectContentUri . Чтобы получить максимальную выгоду от операции предварительной выборки, следует уделить приоритетное внимание предварительной выборке содержимого, которое пользователь видит в первую очередь или которое часто использует пользователь. Следует указать содержимое, которое имеет достаточно длительный срок существования приложения. Не следует выполнять предварительную выборку содержимого с немедленным или очень коротким сроком действия, а также содержимое, которое будет удалено из представления пользователя в течение короткого периода времени. Кратковременное содержимое является плохим выбором для предварительно выбранного содержимого, так как, скорее всего, срок действия содержимого истекает или не будет отображаться до использования приложения и, следовательно, не будет полезным для пользователей.

Как упоминалось выше, система определяет, когда выполняется предварительная выборка для приложения. Однако в целях разработки можно инициировать немедленную предварительную выборку для приложения, вызвав API рабочего стола интерфейса IContentPrefetcherTaskTrigger .

Чтобы упростить отладку, можно прослушивать события трассировки событий Windows на канале Microsoft-Windows-BackgroundTransfer-ContentPrefetcher . Такие события, как инициация и завершение предварительной выборки, инициация и завершение HTTP-запроса и проверка XML, будут активировать события.

Свойства

ContentUris

Массив URI для скачивания при выполнении предварительной выборки для приложения.

IndirectContentUri

Указывает расположение XML-файла правильного формата, содержащего список ресурсов для предварительной выборки.

LastSuccessfulPrefetchTime

Возвращает дату и время последней успешной операции предварительной выборки содержимого.

Применяется к