Vue d’ensemble de la stratégie de téléchargement minimaleMinimal Download Strategy overview

Découvrez une stratégie de téléchargement minimale (MDS), une nouvelle fonctionnalité de SharePoint qui réduit le temps de chargement des pages en envoyant uniquement les différences lorsque les utilisateurs accédaient à une nouvelle page.Learn about Minimal Download Strategy (MDS), a new feature in SharePoint that reduces page load time by sending only the differences when users navigate to a new page. La stratégie de téléchargement minimal (MDS) est une nouvelle technologie dans SharePoint qui réduit la quantité de données que le navigateur doit télécharger lorsque les utilisateurs naviguent d'une page à une autre dans un site SharePoint.Minimal Download Strategy (MDS) is a new technology in SharePoint that reduces the amount of data that the browser has to download when users navigate from one page to another in a SharePoint site. Lorsque les utilisateurs accèdent à un site prenant en charge MDS, le client traite uniquement les différences (ou delta) entre la page actuelle et à la page demandée.When users browse an MDS-enabled site, the client processes only the differences (or delta) between the current page and the requested page. La figure 1 illustre les sections que le changement de page et par conséquent nécessitent une mise à jour.Figure 1 shows the sections that change from page to page and therefore require an update. Delta inclut généralement des données dans les zones de contenu (1), ainsi que des autres composants tels que les contrôles de navigation (2).The delta usually includes the data in the (1) content areas, as well as other components such as (2) navigation controls.

La figure 1. Traitée de page avec MDSFigure 1. Page processed with MDS

Page traitée avec MDS

Vous pouvez identifier un site qui a MDS activé en effectuant une recherche à l'URL. Un site prenant en charge MDS a la page (3) _layouts/15/start.aspx dans l'URL suivie par une marque de hachage ( # ) et l'URL relative de la ressource demandée, comme le montre la Figure 1. Par exemple, ce qui suit est une URL au format MDS pour la page newpage.aspx: https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspxIl est équivalente à l'URL au format non-MDS suivante : https://sp_site/SitePages/newpage.aspxEn tant que développeur, vous pourriez créer les composants SharePoint nécessitant des mises à jour avant qu'ils peuvent travailler en toute transparence avec MDS.You can identify a site that has MDS enabled by looking at the URL. An MDS-enabled site has the (3) _layouts/15/start.aspx page in the URL followed by a hash mark ( # ) and the relative URL of the requested resource, as shown in Figure 1. For example, the following is the MDS-formatted URL for the page newpage.aspx: https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspxIt is equivalent to the following non-MDS-formatted URL: https://sp_site/SitePages/newpage.aspxAs a developer, you might have created SharePoint components that need some updates before they can work seamlessly with MDS.

Activer MDSEnable MDS

Vous pouvez activer MDS dans votre site en utilisant les pages d'administration des sites ou les modèles objet client de SharePoint .You can enable MDS in your site by using either the site administration pages or the SharePoint client object models.

Pour activer MDS en activant la fonction dans les pages d'administration, choisissez paramètres du Site > gérer les fonctionnalités du siteet activer la fonctionnalité de Stratégie de télécharger minimale.To enable MDS by activating the feature in the administration pages, choose Site settings > Manage site features, and activate the Minimal Download Strategy feature.

Étant donné que la fonctionnalité est activée en modifiant la propriété EnableMinimalDownload , vous pouvez également utiliser le client API. Le code suivant montre comment activer MDS à l'aide du modèle d'objet JavaScript (JSOM).Because the feature is activated by modifying the EnableMinimalDownload property, you can also use the client APIs. The following code shows how to enable MDS using the JavaScript object model (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());
}

Avantages de l'utilisation de MDSBenefits of using MDS

À l'aide de MDS présente plusieurs avantages, y compris :Using MDS provides several benefits, including:

  • Vitesse : C'est le principal objectif de MDS. Lorsque vous utilisez MDS, le navigateur ne possède traite une nouvelle fois l'interface utilisateur de chrome (IU). MDS également réduit la charge utile par rapport à une charge de la page entière.Speed: This is the main objective of MDS. When you are using MDS, the browser doesn't have to reprocess the chrome user interface (UI). MDS also reduces the payload compared to a full page load.

  • Lisse transitions : En mettant à jour uniquement les domaines qui modifient, vous dessinez œil de l'utilisateur vers ces domaines, par opposition à une charge de la page entière où la totalité de la page « clignote. » Lors de la page entière est mis à jour, l'utilisateur doit analyser dans son intégralité pour détecter les nouveautés. Les utilisateurs ont un temps plus facile de navigation dans un site qui ne met à jour les zones qui a été modifié à partir de la page précédente.Smooth transitions: By updating only the areas that change, you draw the user's eye toward these areas, as opposed to a full page load where the whole page "flashes." When the whole page is updated, the user must parse it in its entirety to detect what is new. Users have an easier time navigating a site that only updates the areas that changed from the previous page.

  • Contrôles de navigation de navigateur : Autres systèmes AJAX confondent les boutons précédent et suivant dans les navigateurs. Étant donné que MDS met à jour l'URL dans la fenêtre du navigateur, les boutons précédents et suivant fonctionnent comme ils sont censés.Browser navigation controls: Other AJAX-based systems confuse the previous and next buttons in browsers. Because MDS updates the URL in the browser window, the previous and next buttons work just as they are supposed to.

  • Compatibilité descendante : Le moteur de MDS fournit navigation MDS immédiatement ou détecte lorsqu'il n'est pas possible. Dans le cas où navigation MDS ne possible, une charge de la page entière survient au lieu de cela. Ce processus est appelé basculement, et il assure que toutes les pages correctement restitué peu importe si elles contiennent des composants MDS à la spécification CLS. MDS fonctionne aussi bien avec des moteurs de recherche étant donné que l'attribut href de balises d'ancrage utilise les URL régulières, au MDS format non. Au lieu de cela, le moteur de MDS dans le client de capture l'événement onclick et utilise pour communiquer avec le serveur.Backward compatibility: The MDS engine either provides MDS navigation immediately or detects when it isn't possible. In the case where MDS navigation isn't possible, a full page load occurs instead. This process is called failover, and it ensures that all pages render properly regardless of whether they contain MDS-compliant components. MDS also works nicely with search engines because the href attribute of anchor tags uses the regular, non MDS-formatted URLs. Instead, the MDS engine in the client captures the onclick event and uses it to communicate with the server.

Architecture MDSMDS architecture

Les mécanismes de base de MDS sont assez simples. Les principaux composants de MDS sont deux moteurs, une sur le serveur et l'autre dans le client, qui fonctionnent conjointement pour calculer les modifications et afficher les pages dans le navigateur lorsque l'utilisateur navigue de page dans le site. La figure 2 illustre le flux MDS lorsqu'un utilisateur accède à un site prenant en charge MDS.The basic mechanics of MDS are pretty simple. The main components of MDS are two engines, one in the server and another in the client, that work together to calculate the changes and render the pages in the browser when the user navigates from page to page in the site. Figure 2 shows the MDS flow when a user navigates through an MDS-enabled site.

La figure 2. Flux de MDS lorsqu'un utilisateur accède au siteFigure 2. MDS flow when a user navigates the site

Flux MDS lorsqu'un utilisateur accède au site

  1. Le navigateur demande les modifications entre la page actuelle et une autre dans le site SharePoint .The browser requests the changes between the current page and a new one in the SharePoint site.

  2. Le moteur de MDS sur le serveur calcule le delta entre les actuellement et les nouvelles pages.The MDS engine in the server calculates the delta between the current and the new pages.

  3. Le moteur de MDS sur le serveur envoie le delta au moteur de MDS dans le client.The MDS engine in the server sends the delta to the MDS engine in the client.

  4. Le moteur de MDS dans le client remplace les zones modifiées dans la page actuelle par le nouveau contenu de page.The MDS engine in the client replaces the changed areas on the current page with the new page content.

La page qui en résulte est exactement tel qu'il aurait si la page a été téléchargée sans MDS.The resulting page is exactly as it would have been if the page had been downloaded without MDS.

Le moteur de MDS dans le client inclut un gestionnaire de téléchargement. Toutes les requêtes dans la page sont routés par le gestionnaire de téléchargement. Tous les contrôles dans la page doivent s'abonner le gestionnaire de téléchargement pour en savoir plus quand une URL a été modifiée. Le gestionnaire de téléchargement crée une demande de toutes les données de contrôle nouveau. Pour être en mesure travailler avec des moteurs de recherche, le moteur de MDS n'utilise directement l'attribut href de balises d'ancrage à stocker des URL au format MDS. Au lieu de cela, la fonction SPUpdatePage gère l'événement onclick et utilise pour communiquer avec le serveur. La fonction SPUpdatePage est déclarée dans le fichier _layouts/15/start.js.The MDS engine in the client includes a download manager. All requests in the page are routed through the download manager. All controls in the page must subscribe to the download manager to learn when a URL has changed. The download manager makes one request for all the new control data. To be able to work with search engines, the MDS engine doesn't directly use the href attribute of anchor tags to store MDS-formatted URLs. Instead, the SPUpdatePage function handles the onclick event and uses it to communicate with the server. The SPUpdatePage function is declared in the _layouts/15/start.js file.

Le moteur de MDS sur le serveur envoie les informations au client. Cette information peut contenir HTML avec des scripts incorporés et styles, XML ou JavaScript Object Notation (JSON).The MDS engine in the server sends the information back to the client. This information can contain HTML with embedded scripts and styles, XML, or JavaScript Object Notation (JSON).

L'URL joue un rôle important dans MDS. Une URL MDS ressemble à ce qui suit : https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspx SitePages/newpage.aspx. Start.aspx contient l'interface utilisateur partagé minimale et des instructions pour le chargement des modifications de page. MDS considère que le composant suivant la dièse (#) comme étant la page cible. La page cible commence par une barre oblique (/) et une URL relative au site Web SharePoint . Lorsque le navigateur reçoit l'URL, elle voit que le composant à gauche de la marque de hachage n'a pas changé, donc cet événement déclenche un événement de navigation local. Le moteur de MDS dans le client de capture l'événement navigation local et utilise pour effectuer une mise à jour MDS.The URL plays an important role in MDS. An MDS URL looks like the following: https://sp_site/_layouts/15/start.aspx#/SitePages/newpage.aspx. Start.aspx contains minimal shared UI and instructions for loading page changes. MDS considers the part following the hash mark (#) as the target page. The target page starts with a slash (/) followed by a URL relative to the SharePoint website. When the browser receives the URL, it sees that the part to the left of the hash mark hasn't changed, so it fires a local navigation event. The MDS engine in the client captures the local navigation event and uses it to perform an MDS update.

Comme indiqué précédemment dans cet article, dans certaines situations, il n'est pas possible de déterminer si la page peut être mis à jour correctement. Dans ce cas, le moteur de MDS émet un basculement, ce qui se compose d'un aller-retour supplémentaire pour rediriger le navigateur vers la version complète de la nouvelle page. Voici les principales raisons pourquoi le basculement se produit :As mentioned previously in this article, in some situations it's not possible to determine whether the page can be updated properly. In these situations, the MDS engine issues a failover, which consists of an extra round trip to redirect the browser to the full version of the new page. These are the most common reasons why failover occurs:

  • La nouvelle page est une autre page maître.The new page has a different master page.

  • La page maître actuelle a changé.The current master page has changed.

  • Le moteur de MDS détecte non-conformité HTML, par exemple :The MDS engine detects non-compliant HTML, for example:

    • Pages à l'aide d'ASP.NET 2.0Pages using ASP.NET 2.0

    • CSS ou les scripts ne pas enregistrées dans le moteur de MDSCSS or scripts not registered in the MDS engine

    • HTML incorrectsIllegal HTML

  • Il existe des contrôles non conforme dans la page, par exemple :There are non-compliant controls on the page, for example:

    • Le contrôle n'est pas dans la liste d'autorisation du moteur MDS.The control is not in the MDS engine whitelist.

    • L'assembly de contrôle n'est pas marqué comme étant conforme.The control assembly is not marked as compliant.

    • La classe de contrôle ne comporte pas de l'attribut MDS.The control class doesn't have the MDS attribute.

Le moteur de MDS tente de récupérer à partir d'un basculement une fois que l'utilisateur navigue vers une nouvelle page.The MDS engine tries to recover from a failover after the user navigates to yet another new page.

Contrôles pour développeursDeveloper controls

Grâce au mécanisme de basculement, vos contrôles de travaillent en toute transparence ou non MDS est activée dans les sites Web de vos utilisateurs. Toutefois, il est conseillé de mettre à jour votre SharePoint contrôles et les composants de tirer pleinement parti de MDS. Les utilisateurs reçoivent une meilleure expérience lors de vos pages et les contrôles sont conformes MDS. Les composants suivants sont propices à obtenir optimisé pour MDS :Thanks to the failover mechanism, your controls work seamlessly whether or not MDS is enabled in your users' websites. However, it is a good idea to update your SharePoint controls and components to take full advantage of MDS. Users get a better experience when your pages and controls are MDS compliant. The following components are good candidates to get optimized for MDS:

  • les pages maîtres ;Master pages

  • pages de ASP.NETASP.NET pages

  • Contrôles et composants WebPartControls and web parts

Voir aussiSee also