Información general de Estrategia de descarga mínima
Obtenga información sobre la Estrategia de descarga mínima (MDS), una nueva característica de SharePoint que reduce el tiempo de carga de las páginas enviando solo las diferencias cuando los usuarios navegan a una página nueva.
Estrategia de descarga mínima (MDS) es una nueva tecnología en SharePoint que reduce la cantidad de datos que el navegador tiene que descargar cuando los usuarios van de una página a otra en un sitio de SharePoint. Cuando los usuarios exploren un sitio habilitado para MDS, el cliente procesa sólo las diferencias (o delta) entre la página actual y la página solicitada. La figura 1 muestra las secciones que cambian de una página a otra y por lo tanto, requieren una actualización. Normalmente, el delta incluye los datos en las áreas de contenido (1), así como otros componentes como controles de navegación (2).
Figura 1. Página procesada con MDS
Puede identificar un sitio con MDS habilitado mirando la dirección URL. Un sitio habilitado para MDS tiene la página (3) _layouts/15/start.aspx en la dirección URL seguido de un signo de almohadilla ( # ) y la dirección URL relativa del recurso solicitado, como se muestra en la figura 1. Por ejemplo, la siguiente es la dirección URL con formato MDS para la página newpage.aspx: https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspxEs equivalente a la siguiente dirección URL: MDS con formato no: https://sp_site/SitePages/newpage.aspxComo desarrollador, podría haber creado los componentes de SharePoint que necesitan algunas actualizaciones antes de que puedan trabajar sin problemas con MDS.
Habilitar MDS
Puede habilitar MDS en el sitio mediante el uso de las páginas de administración de sitios o los modelos de objetos de cliente de SharePoint.
Para habilitar MDS mediante la activación de la característica de las páginas de administración, elija Configuración del sitio>Administrar características del sitio y activar la característica de la Estrategia de descarga mínima.
Dado que la característica se activa modificando la propiedad EnableMinimalDownload , también puede usar las API de cliente. El siguiente código muestra cómo habilitar MDS con el modelo de objetos de JavaScript (JSOM).
var clientContext;
clientContext = new SP.ClientContext.get_current();
this.oWebsite = clientContext.get_web();
this.oWebsite.set_enableMinimalDownload(true);
this.oWebsite.update();
clientContext.load(this.oWebsite);
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
function successHandler() {
alert("MDS is enabled in this site.");
}
function errorHandler() {
alert("Request failed: " + arguments[1].get_message());
}
Ventajas del uso de MDS
Uso de MDS proporciona varios beneficios, incluidos:
- Velocidad: Este es el objetivo principal de MDS. Cuando se usa MDS, el explorador no tiene que volver a procesar la interfaz de usuario (UI) de cromo. MDS también reduce la carga en comparación con una carga de página completa.
- Transiciones suaves: Al actualizar solo las áreas que cambian, se dibuja el ojo del usuario hacia estas áreas, en lugar de una carga de página completa donde toda la página "parpadea". Cuando se actualiza toda la página, el usuario debe analizarla en su totalidad para detectar las novedades. Los usuarios tienen un tiempo más fácil para navegar por un sitio que solo actualiza las áreas que cambiaron de la página anterior.
- Controles de navegación del explorador: Otros sistemas basados en AJAX confunda los botones anterior y siguiente en exploradores. Debido a MDS actualiza la dirección URL en la ventana del explorador, los botones anteriores y siguientes funcionan al igual que se debía.
- Compatibilidad con versiones anteriores: El motor de MDS proporciona navegación MDS inmediatamente o detecta cuando no es posible. En el caso de que no es posible la navegación de MDS, una carga de página completa se produce en su lugar. Este proceso se denomina conmutación por error y se asegura de que todas las páginas se representen correctamente tanto si contienen componentes compatibles con MDS. MDS también funciona bien con los motores de búsqueda debido a que el atributo href de las etiquetas de las direcciones URL normales, MDS con formato no utiliza. En su lugar, el motor de MDS en el cliente capture el evento onclick y la usa para comunicarse con el servidor.
Arquitectura de MDS
Los mecanismos básicos de MDS son muy simples. Los componentes principales de MDS son dos motores, una en el servidor y otra en el cliente, que funcionan conjuntamente para calcular los cambios y representar las páginas en el explorador cuando el usuario se desplaza por las páginas del sitio. La figura 2 muestra el flujo MDS cuando un usuario se desplaza a través de un sitio habilitado para MDS.
Figura 2. Flujo de MDS cuando un usuario navega por el sitio
- El explorador solicita los cambios entre la página actual y una nueva en el sitio SharePoint.
- El motor de MDS en el servidor calcula la diferencia entre la actual y las nuevas páginas.
- El motor de MDS en el servidor envía el delta al motor de MDS en el cliente.
- El motor de MDS en el cliente reemplaza las áreas cambiadas en la página actual con el nuevo contenido de página.
La página resultante es exactamente como lo habría sido si tenía ha descargado la página sin MDS.
El motor de MDS en el cliente incluye un administrador de descargas. Todas las solicitudes en la página se enrutan a través del Administrador de descarga. Todos los controles de la página deben suscribirse al administrador de descarga para obtener información sobre cuándo se ha cambiado una dirección URL. El Administrador de descargas realiza una solicitud para todos los nuevos datos de control. Para poder trabajar con los motores de búsqueda, el motor de MDS directamente no usa el atributo href de las etiquetas para almacenar las direcciones URL con formato MDS. En su lugar, la función SPUpdatePage controla el evento onclick y la usa para comunicarse con el servidor. La función SPUpdatePage se declara en el archivo _layouts/15/start.js.
El motor de MDS en el servidor envía la información al cliente. Esta información puede contener HTML con secuencias de comandos incrustadas y estilos, XML o Notación de objetos de JavaScript (JSON).
La dirección URL desempeña un papel importante en MDS. Una dirección URL de MDS el siguiente aspecto: https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspx. Start.aspx contiene la interfaz de usuario compartida mínima e instrucciones para cargar los cambios en la página. MDS tiene en cuenta la parte que sigue el signo de almohadilla (#) como la página de destino. La página de destino se inicia con una barra diagonal (/) seguida de una dirección URL relativa del sitio Web de SharePoint. Cuando el explorador recibe la dirección URL, ve que no ha cambiado el elemento a la izquierda de la marca de hash, por lo que desencadena un evento de navegación local. El motor MDS en el cliente capture el evento de navegación local y la usa para realizar una actualización MDS.
Como se mencionó anteriormente en este artículo, en algunas situaciones no es posible determinar si la página se puede actualizar correctamente. En estas situaciones, el motor de MDS emite una conmutación por error, que se compone de un recorrido de ida adicional para redirigir el explorador a la versión completa de la nueva página. Estos son los motivos más comunes por qué se produce la conmutación por error:
- La nueva página tiene una página maestra diferente.
- La página maestra actual ha cambiado.
- El motor de MDS detecta no es compatible con HTML, por ejemplo:
- Páginas con ASP.NET 2.0
- CSS o secuencias de comandos no registrados en el motor de MDS
- HTML no válido
- Hay controles no compatibles en la página, por ejemplo:
- El control no está en la lista de permitidos del motor MDS.
- El ensamblado del control no está marcado como compatible.
- La clase de control no tiene el atributo MDS.
El motor de MDS intentará recuperarse de una conmutación por error cuando el usuario se desplaza a otra página nueva.
Controles del programador
Gracias al mecanismo de conmutación por error, los controles trabajan sin problemas o no está habilitado MDS en sitios Web de los usuarios. Sin embargo, es una buena idea para actualizar los controles de SharePoint y componentes para aprovechar al máximo de MDS. Los usuarios obtener una mejor experiencia cuando las páginas y los controles son MDS compatible. Los siguientes componentes son buenos candidatos para obtener optimizado para MDS:
- Páginas maestras
- Páginas ASP.NET
- Controles y elementos web