ContentPrefetcher Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona propiedades para especificar los recursos web que se van a capturar previamente. Windows usará heurística para intentar descargar los recursos especificados antes de que el usuario inicie la aplicación.
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
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Comentarios
Muchas categorías de aplicaciones deben descargar grandes cantidades de contenido web al iniciarse. Esto puede dar lugar a experiencias de usuario deficientes en las que los usuarios deben esperar a que el contenido se cargue antes de que la aplicación sea totalmente funcional. La clase ContentPrefetcher proporciona mecanismos para especificar los recursos que Windows debe intentar descargar con antelación de la aplicación que el usuario inicia.
La heurística se usa para determinar cuándo debe producirse la captura previa y qué recursos se descargarán. Estas heurística tienen en cuenta las condiciones de energía y la red del sistema, el historial de uso de aplicaciones de usuario y los resultados de los intentos previos de captura previa para proporcionar la máxima ventaja del usuario, pero no hay ninguna garantía de que ningún recurso determinado se haya descargado antes de que se inicie una aplicación determinada.
Los recursos que se han cargado previamente correctamente se colocarán en la caché de WinINet específica de la aplicación. No se requieren cambios en las solicitudes HTTP existentes para estos recursos una vez que se ejecuta la aplicación; WinINet simplemente servirá de forma transparente el contenido de la memoria caché si está disponible. En caso de que un recurso solicitado no se haya capturado previamente, una solicitud HTTP para el contenido simplemente da como resultado un error en la memoria caché y la solicitud se realiza al servidor. Tenga en cuenta que esta estrategia de almacenamiento en caché funciona para las solicitudes HTTP realizadas mediante la interfaz WinJS.xhr, Windows.Web.Http.HttpClient e IXMLHTTPRequest2 . No se admite .NET Framework HttpClient .
La clase ContentPrefetcher proporciona dos mecanismos para especificar recursos que se deben capturar previamente:
- La propiedad ContentUris permite capturar previamente la especificación directa del lado cliente de los recursos. Esto es útil para el contenido con URI que son bastante estáticos en que no cambian entre el uso posterior de la aplicación. Un ejemplo sería los URI asociados a secciones de una aplicación a la que se suscribe un usuario, al que solo cambiaría cuando el usuario actualiza sus opciones de suscripción con la aplicación.
- La propiedad IndirectContentUri proporciona para especificar la ubicación de un archivo XML que enumera los recursos que se van a capturar previamente. Los recursos que se van a capturar previamente se pueden actualizar dinámicamente modificando el contenido del XML. Esto es útil en los casos en los que se espera que el contenido sea más dinámico en que los URI de contenido cambien entre el uso posterior de la aplicación.
Un ejemplo sería la captura previa de imágenes para los artículos de noticias más recientes, los artículos de noticias y las imágenes correspondientes cambian con frecuencia y el archivo XML se puede mantener actualizado con los URI más recientes para capturar previamente. Las aplicaciones pueden usar ambas propiedades para especificar los recursos que se van a capturar previamente. Tenga en cuenta que se admiten un máximo de 40 URI de contenido y los recursos especificados a través de la propiedad ContentUri se descargarán en preferencia a los especificados por el XML IndirectContentUri . Debe priorizar el contenido de captura previa que un usuario ve por primera vez, o que un usuario usa con frecuencia para obtener la mayor ventaja de la operación de captura previa. Debes indicar el contenido que tiene una duración razonablemente larga para la aplicación. No capturar previamente el contenido que tenga un tiempo de expiración inmediato o muy corto, o contenido que se retiraría de la vista de un usuario en un breve período de tiempo. El contenido de corta duración es una opción deficiente para el contenido de captura previa, ya que es probable que el contenido expire o no se muestre antes de que se use la aplicación y, por lo tanto, no sea una ventaja para los usuarios.
Como se mencionó anteriormente, el sistema determina cuándo se realiza la captura previa de una aplicación. Sin embargo, para fines de desarrollo, puedes iniciar la captura previa inmediata para tu aplicación llamando a la API de escritorio de la interfaz IContentPrefetcherTaskTrigger .
Para ayudar en la depuración, puede escuchar eventos ETW en el canal Microsoft-Windows-BackgroundTransfer-ContentPrefetcher . Las repeticiones, como el inicio y la finalización de la captura previa, el inicio y la finalización de una solicitud HTTP, y la validación XML desencadenará eventos.
Propiedades
ContentUris |
Matriz de URI que se van a descargar cuando se realiza la captura previa para la aplicación. |
IndirectContentUri |
Especifica la ubicación de un archivo XML con formato correcto que contiene una lista de recursos que se van a capturar previamente. |
LastSuccessfulPrefetchTime |
Obtiene la fecha y hora de la última operación de captura previa de contenido correcta. |