Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Dieser Artikel gilt nur für das klassische SharePoint (sharePoint Server 2013/2016/2019 Classic Experience). Dies gilt nicht für moderne SharePoint Online-Umgebungen, bei denen die minimale Downloadstrategie (Minimal Download Strategy, MDS), master Seiten und die serverseitige Anpassung des Seitenrenderings nicht verwendet werden.
Bei der modernen SharePoint-Entwicklung wird die SharePoint-Framework (SPFx) anstelle von MDS-basierten Seitenoptimierungstechniken verwendet.
Erfahren Sie, wie die Komponenten in Ihrem Projekt SharePoint die Vorteile der minimale herunterladen Strategie (MDS) in SharePoint ändern. Minimale herunterladen Strategie (MDS) wurde die benutzerfreundlichkeit verbessert, indem nur die Teile einer Seite erforderlich, um diese ordnungsgemäß im Browser zu rendern vom Server zurückgegeben. Da die vollständig gerenderte Seite nicht an den Client zurückgegeben wird, muss der Server die Teile, die zum Rendern der Seite erforderlich sind, genau identifizieren können. Möglicherweise müssen Sie die Komponenten in Ihrem SharePoint-Projekt so ändern, dass sie als MDS-kompatibel identifiziert werden und mit der MDS-Engine verwendet werden können. Weitere Informationen zu MDS finden Sie in der Übersicht über die Strategie für minimalen Download.
Gründe für das Ändern SharePoint Komponenten?
Wie unter Übersicht über minimale Downloadstrategie erläutert, funktionieren SharePoint-Steuerelemente unabhängig davon, ob Sie sie ändern, um MDS in vollem Umfang zu nutzen. Wenn Ihre Komponenten jedoch nicht MDS-kompatibel sind, gibt die MDS-Engine ein Failover aus. In der ein Failover benötigt das Modul MDS ein zusätzlicher Roundtrip zum Umleiten von im Browsers auf die Vollversion der neuen Seite, die Zeit in Anspruch nimmt. Benutzer haben die beste Erfahrung beim Arbeiten mit MDS und einen Failover zu vermeiden, jedes Mal, wenn eine neue Seite in SharePoint Besuch Komponenten ändern. In der Regel müssen Sie master Seiten, ASP.NET Seiten, Steuerelemente und Webparts ändern.
Gestaltungsvorlagen
Die Gestaltungsvorlage bietet eine Vorlage, mit der MDS Inhaltsbereiche zu identifizieren, die möglicherweise aktualisiert werden, wenn eine Person zu einer neuen Seite navigiert. Die Optimierung Ihrer master Seite ist einer der wichtigsten Schritte beim Optimieren der Leistung, da master Seiten Abschnitte identifizieren, die aktualisierte Inhalte erfordern. Das Seattle. master in SharePoint enthaltene Seite ist ein gutes Beispiel für eine optimierte master Seite. Abbildung 1 zeigt Beispiele für Komponenten in der Gestaltungsvorlage Seattle.master, die sich über mehrere Seiten, wie (1) Content Hauptbereich, (2) der linken Navigationsleiste und Titel (3) Seite ändern.
Abbildung 1. Komponenten, die Updates auf einer master-Seite erfordern
Hinweis
Es gibt viele weitere Komponenten in der Gestaltungsvorlage „Seattle.master“, wie etwa Stylesheets und JavaScript Dateien, die sich von Seite zu Seite ändern. Abbildung 1 zeigt nur einige Beispiele.
Es gibt verschiedene Muster, um die Komponenten in einer Gestaltungsvorlage zu optimieren. Sie können ein Muster für die folgenden Komponenten:
- HTML-Regionen und Steuerelemente
- Stylesheets
- JavaScript-Dateien
- Seitentitel
HTML-Regionen und -Steuerelemente sind MDS-kompatibel, wenn sie in <SharePoint:AjaxDelta> Tags eingeschlossen sind. Indem Sie den Inhalt in <SharePoint:AjaxDelta> Tags umschließen, signalisieren Sie, dass die MDS-Engine die eingeschlossenen Steuerelemente und den HTML-Code aktualisieren soll. Wenn sich ein Steuerelement oder HTML-Abschnitt nicht von Seite zu Seite ändert, sollte es nicht an den Client gesendet werden. Daher sollten Sie diese Steuerelemente außerhalb von <AjaxDelta> Tags beibehalten. Im Seattle. master master in Abbildung 1 gezeigten Seite ist der (1) Hauptinhaltsbereich wie hier dargestellt mit <AjaxDelta> Tags umschlossen.
<SharePoint:AjaxDelta
id="DeltaPlaceHolderMain"
BlockElement="true"
IsMainContent="true"
runat="server">
<a id="mainContent" name="mainContent" tabindex="-1"></a>
<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />
</SharePoint:AjaxDelta>
Ein weiteres Beispiel für das <AjaxDelta> Muster ist die (2) linke Navigationsleiste in Abbildung 1. Der folgende Code zeigt, wie das Steuerelement zusammen mit vielen anderen Steuerelementen und HTML in <AjaxDelta> Tags eingeschlossen wird.
<SharePoint:AjaxDelta
id="DeltaPlaceHolderLeftNavBar"
BlockElement="true"
CssClass="ms-core-navigation"
role="navigation"
runat="server">
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server">
<a id="startNavigation" name="startNavigation" tabIndex="-1"></a>
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" runat="server" />
<asp:ContentPlaceHolder id="PlaceHolderQuickLaunchTop" runat="server" />
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" runat="server" />
<asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat="server" />
<asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat="server" />
<!-- There are more controls and HTML in this placeholder in the Seattle master page -->
</asp:ContentPlaceHolder>
</SharePoint:AjaxDelta>
Eine letzte Sache, die Sie bei <AjaxDelta> Tags beachten sollten, ist, dass Sie sie nicht schachteln können. Sie sollten Tags auf der höchsten erforderlichen Ebene in der master Seitenstruktur angeben<AjaxDelta>.
Das letzte Beispiel in Abbildung 1 ist der (3) Seitentitel, der ein spezielles Muster erfordert, das das <SharePoint:PageTitle> -Tag verwendet. Der folgende Code zeigt das <PageTitle> In seattle.master master Seite.
<SharePoint:PageTitle runat="server">
<asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server">
<SharePoint:ProjectProperty Property="Title" runat="server" />
</asp:ContentPlaceHolder>
</SharePoint:PageTitle>
Die Masterseite kann auch Stylesheets und die JavaScript Dateien enthalten. Das Server-Datenbankmodul muss CSS- und JavaScript Dateien nach Bedarf zu identifizieren. Verwenden Sie das folgende Muster, um die CSS-Dateiressourcen nach Bedarf zu identifizieren.
<SharePoint:CssLink runat="server" Version="15"/>
<SharePoint:CssRegistration Name="my_styles.css" runat="server" />
Sie können nur ein <CssLink> Tag pro master Seite, aber viele Tags verwenden<CssRegistration>, sodass Sie viele CSS-Dateien hinzufügen können. Verwenden Sie das folgende Muster für JavaScript-Dateien.
<SharePoint:ScriptLink language="javascript" name="my_javascript.js" runat="server" />
Das Einschließen von CSS- und JavaScript-Dateien mit HTML <style> und <script> Tags wird in MDS nicht unterstützt.
ASP.NET Seiten
Wenn Ihr Projekt ASP.NET Seiten enthält, müssen Sie CSS- und JavaScript-Dateien zu verweisen. Der HTML-Code <style> und die <script> Tags sind nicht mit MDS kompatibel. Verwenden Sie stattdessen die <CssRegistration> im vorherigen Abschnitt erläuterten Muster und <ScriptLink> .
Ihre ASP.NET Seiten können auch die Response.Output -Methode verwenden, um Inhalte auf die Seite zu schreiben, was in MDS nicht zulässig ist. Stattdessen können Sie die folgenden MDS-kompatiblen Methoden der SPHttpUtility -Klasse:
- WriteNoEncode()
- WriteHtmlEncode()
- WriteEcmaScriptStringLiteralEncode()
- WriteHtmlEncodeAllowSimpleTextFormatting()
- WriteHtmlUrlAttributeEncode()
- WriteUrlKeyValueEncode()
- WriteUrlPathEncode()
Zusätzlich zum Verweisen auf JavaScript Dateien können Seiten ASP.NETJavaScript Inlinecode enthalten. Mit dem folgenden Muster stellen Sie das Skript blockiert MDS kompatibel.
<SharePoint:ScriptBlock runat="server" >
// Your JavaScript code here.
</SharePoint:ScriptBlock>
Steuerelemente und Webparts
Außerdem müssen Sie Ihre Steuerelemente und Webparts als MDS-kompatibel kennzeichnen. Der folgende Code zeigt das zu verwendende Muster.
[assembly: Microsoft.SharePoint.WebControls.MdsCompliantAttribute(IsCompliant = true)]
namespace VisualWebPartProject2.VisualWebPart1
{
// Rest of your control logic
Außerdem müssen Ihre Steuerelemente und Webparts ihre Ressourcen mithilfe der Methoden in der SPPageContentManager-Klasse registrieren. Die häufigsten Ressourcen sind JavaScript-Codeausschnitte und ausgeblendete Dateien, die mit <RegisterClientScriptBlock> bzw <RegisterHiddenField>. registriert werden können.
Ihre Steuerelemente und Webparts können auch XSLT-Dateien verwenden, um den Renderingprozess zu steuern. Ihre XSLT-Dateien können JavaScript Code oder Dateien eingebettet haben. Das Modul MDS muss diese Ressourcen kennen. Sie können die JavaScript-Ressourcen mithilfe eines XSLT-Erweiterungsobjekts namens pcmregistrieren. Ein gutes Beispiel für die Verwendung des pcm -Objekts finden Sie in der Datei %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\XSL\fldtypes.xsl. Der folgende Code zeigt, wie die Datei fldtypes.xsl das pcm -Objekt verwendet, um JavaScript-Ressourcen zu registrieren.
<xsl:value-of select="pcm:RegisterScriptBlock(concat('block1',$ViewCounter), string($scriptbody1))"/>
<xsl:value-of select="pcm:RegisterScriptLink('/_layouts/15/wssactionmenu.js')"/>