Optimieren der Leistung in SharePoint Seite
Informationen Sie zu Features zum Verbessern der Leistung auf den Seiten in SharePoint. Diese Features können zur Verbesserung der Erfahrung in geografisch verteilten Implementierungen verwendet werden.
Zur Verfügung gestellt von: David Crawford, Microsoft Corporation
Dieser Artikel enthält Anweisungen, die Optimierung der Leistung in SharePoint helfen. SharePoint enthält Funktionen zur Seite laden über einen Bereich WAN (Wide Network) zu optimieren. Das Entwerfen von Seiten, sodass sie möglichst klein sind und möglichst schnell reagieren, komplettiert diese Leistungsverbesserungen.
Minimale Downloadstrategie (MDS)
Minimale herunterladen Strategie (MDS) nutzt die Möglichkeit, nur bestimmte Teile einer Seite herunterladen, die auf dem Server vollständig gerendert wird. Nur der bestimmte Teile herunterladen bietet ein sehr effizient Loading-Modell. Die vollständig gerenderte Seite wird nicht an den Client zurückgegeben. Der Server muss genau jene identifizieren, die sein müssen als Teil der Antwort und die, die nicht erforderlich sind. Die Teile, die möglicherweise nicht Teil der Antwort enthalten Skripts, Stile und Markup.
Die folgende Tabelle enthält einige Vorteile der Verwendung von MDS.
Tabelle 1. Vorteile der Verwendung von MDS
Leistung | Visuelle Objekte |
---|---|
Weniger Datenmengen pro Seitenanforderung heruntergeladen haben. | Keine Browser blinken zurückzuführen ganze Seite neu zu laden. |
Browser muss nur die Bereiche der Seite aktualisieren, die seit der letzten Anforderung geändert. | Leicht zu identifizieren, Animationen. |
Geringer Verarbeitungsaufwand auf dem Client erforderlich. Hinweis: Die Hälfte der Client-Seitenladezeit 1 (PLT1) wird für das Chrome-Cascading-Stylesheet-Rendering (CSS) und die Analyse und Ausführung von JavaScript benötigt. | Änderungen an der Seite wecken die Aufmerksamkeit des Benutzers. |
AJAX und MDS sind Technologien, die nur Abschnitte der Seite, um Daten zu minimieren herunterladen und Verbesserung der Seite Reaktionsfähigkeit anfordern. Die folgende Abbildung zeigt die MDS-Architektur.
Abbildung 1: MDS-Architektur
Das MDS-Framework wird davon ausgegangen, dass eine Gestaltungsvorlage Chrom und Inhaltsbereiche definiert. MDS bedeutet SharePoint Navigieren zu einer Seite anfordern nur den Inhalt für diesen Regionen und die Ressourcen, denen auf die Seite abhängig ist. Sobald dieser Inhalte an den Browser downloads, gilt Skriptcode die Markup oder Ressourcen auf der Seite aus. Der Browser verhält sich, als ob die angeforderte Seite vollständig vom Server geladen wurde, hatte.
Abbildung 2: Seitenchrom und Regionen auf einer SharePoint-Seite
Wenn Benutzer eine SharePoint-Website im Modus MDS durchsuchen, sie verursachen keine ganze Seitenpostbacks und ganze Seite neu geladen. Stattdessen die URL für die Seite ihnen besuchten erhalten bleibt, und der Fragmentbezeichner ("#"-Zeichen) ändert sich, um die Seite enthalten, die sie besuchen. Das Format der URL lautet: [Path to site (spweb)] + /_layouts/15/start.aspx# + [path to page] + [query string]
.
Die folgende Tabelle enthält einige Beispiele von URLs im Modus MDS formatiert.
Tabelle 2. URLs im Modus MDS formatiert
Nicht-MDS-URL | MDS-URL |
---|---|
http://server/SitePages/ |
http://server/_layouts/15/start.aspx#/SitePages/ |
http://server/subsite/SitePages/home.aspx |
http://server/subsite/_layouts/15/start.aspx#/SitePages/home.aspx |
http://server/_layouts/15/viewlsts.aspx?BaseType=0 |
http://server/_layouts/15/start.aspx#/_layouts/viewlsts.aspx?BaseType=0 |
Das Objekt für die AJAX-Navigation verwendet wird, AjaxNavigate. Standardmäßig ist eine Instanz des AjaxNavigate für die Verwendung von benannten ajaxNavigateverfügbar. So verwenden Sie die Instanz ajaxNavigate
ajaxNavigate.update(serverRelativeURL, null);
Wenn Sie möchten, dass ein Steuerelement oder Webpart Navigationsereignisse abhört, können Sie den add_navigate-Handler verwenden. Wenn der Handler aufgerufen wird, erhält Ihre Rückruffunktion einen Verweis auf das Navigationsobjekt und die analysierten Hash-Werte in einem Wörterbuch. Das Steuerelement oder Webpart kann den Wert für den entsprechenden Parameter aus dem Wörterbuch abrufen, ihn mit dem aktuellen Wert vergleichen und entscheiden, welche Aktion ausgeführt werden muss. Eine häufige Aktion besteht darin, eine AJAX-Anforderung an den Server zum Abrufen von Daten zu senden oder die Elemente in der Ansicht neu anzuordnen. Wenn ein Steuerelement Navigation Ereignisse beendet wurde, können sie den remove_navigate -Ereignishandler verwenden.
MDS unterstützt auch mehrere Rauten in Schlüssel/Wert-Paare. MDS fügt die Hash-Zeichen nach der URL hinzu. Das Format der Hash-Zeichen in der URL ist: http://server/_layouts/15/start.aspx#/SitePages/page.aspx#key1=value1#key2=value2. Im folgenden Codebeispiel erfahren Sie, wie Sie die Hash-Zeichen aktualisieren.
var updateParts;
updateParts = {key1: "value1", key2: "value2", keyn: "valuen"}
ajaxNavigate.update(null, updateParts);
Wenn Sie feststellen, dass die Seiten in Ihrer Website ständig zurückgreifen, um die ganze Seite herunterladen, empfiehlt es sich, deaktivieren das Feature MDS berücksichtigt werden sollten. Sie sollten auch die MDS-Feature zu deaktivieren, wenn Sie eine andere Strategie zum Verbessern der Leistung verwenden müssen.
Ein bestimmtes Element in der Seite muss sicherstellen, dass die wichtigen Ressourcen für das Arbeiten mit der MDS-Infrastruktur zur Renderzeit Server bekannt sind. Um ein vorhandenes Projekt zu verwenden, MDS zu konvertieren, müssen Sie die folgenden Dateien und Komponenten aktualisieren:
- Gestaltungsvorlagen
- ASP.NET Seiten
- Benutzerdefinierte Masterseiten für Fehler
- JavaScript-Dateien
- Steuerelemente und Webparts
Gestaltungsvorlagen
Die wichtigste Änderung in der Gestaltungsvorlage ist die Bereiche der HTML-Markup umgeben werden, die mit einem speziellen-Steuerelement mit dem Namen SharePoint:AjaxDelta an den Client gesendet wird. Die am häufigsten verwendeten Teile, die von einem Steuerelement SharePoint:AjaxDelta umgeben sein müssen, sind in der Gestaltungsvorlage Chrome und der Content Platzhalter eingebettet. Wenn ein Steuerelement auf allen Seiten innerhalb einer Website identisch ist, sollten sie nicht von einem Steuerelement SharePoint:AjaxDelta eingeschlossen werden. Das folgende Markup zeigt einen sichtbaren Inhaltsplatzhalter, umgeben von einer SharePoint:AjaxDelta -Steuerelement.
<SharePoint:AjaxDelta
id="DeltaPlaceHolderMain"
IsMainContent="true"
runat="server"
>
<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />
</SharePoint:AjaxDelta>
Steuerelemente, die abhängig von der aktuellen URL Inhalt aufweisen müssen in einem Steuerelement SharePoint:AjaxDelta umbrochen werden. Das folgende Markup zeigt ein Menü, umgeben von einer SharePoint:AjaxDelta -Steuerelement.
<SharePoint:AjaxDelta id="DeltaBreadcrumbDropdown" runat="server">
<SharePoint:PopoutMenu
runat="server"
ID="GlobalBreadCrumbNavPopout"
IconUrl=IMGCLUSTER_FG_IMG
IconAlt=LOC_ATTR_WSS(master_breadcrumbIconAlt)
IconOffsetX=IMGCLUSTER_FG_LEFT(BREADCRUMBBUTTON)
IconOffsetY=IMGCLUSTER_FG_TOP(BREADCRUMBBUTTON)
IconWidth=IMGCLUSTER_FG_WIDTH(BREADCRUMBBUTTON)
IconHeight=IMGCLUSTER_FG_HEIGHT(BREADCRUMBBUTTON)
AnchorCss="s4-breadcrumb-anchor"
AnchorOpenCss="s4-breadcrumb-anchor-open"
MenuCss="s4-breadcrumb-menu">
</SharePoint:PopoutMenu>
</SharePoint:AjaxDelta>
Hinweis
Das SharePoint: Ajaxdelta-Steuerelement sollte nicht in sich selbst verschachtelt werden. Geben Sie dieses Steuerelement auf der höchsten erforderlichen Ebene an.
Wenn Sie eine Datei cascading Stylesheet (CSS) einschließen möchten, müssen Sie die Steuerelemente SharePoint:CssLink und SharePoint:CssRegistration verwenden. Diese Steuerelemente wurden aktualisiert, um MDS und nicht MDS-Modus zu arbeiten. Das folgende Markup veranschaulicht, wie die Steuerelemente SharePoint:CssLink und SharePoint:CssRegistration verwenden.
<SharePoint:CssLink runat="server" Version="15" />
<SharePoint:CssRegistration Name="my_stylesheet.css" runat="server" />
Vorsicht
Es ist nur ein SharePoint:CssLink-Steuerelement pro Seite erlaubt. Im MDS-Modus erhalten Sie eine Fehlermeldung, wenn Sie über mehr als ein SharePoint:CssLink-Steuerelement auf einer Seite verfügen. Das Einfügen einer CSS-Datei mit einem HTML-Stilelement wird im MDS-Modus nicht unterstützt, da die Serverlogik die Datei nicht als erforderliche Ressource identifizieren kann, wenn die Antwort gerendert wird.
Eine Datei JavaScript aufnehmen möchten, verwenden Sie das SharePoint:ScriptLink -Steuerelement. Das folgende Markup veranschaulicht, wie das SharePoint:ScriptLink -Steuerelement verwendet wird.
<SharePoint:ScriptLink
language="javascript"
name="my_javascriptfile.js"
runat="server"
/>
Vorsicht
Das Einfügen einer JavaScript-Datei mit einem HTML-Skript-Tag wird im MDS-Modus nicht unterstützt, da die Serverlogik die Datei nicht als erforderliche Ressource identifizieren kann, wenn die Antwort gerendert wird.
Zum Rendern von Title-Elements innerhalb des Head-Elements auf der Seite verwenden wir eine spezielle Muster mithilfe des SharePoint:PageTitle -Steuerelements. Das folgende Markup veranschaulicht, wie das SharePoint:PageTitle -Steuerelement verwendet wird.
<SharePoint:PageTitle runat="server">
<asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server" />
</SharePoint:PageTitle>
Hinweis
Jede einzelne Seite muss den Titel durch Bereitstellen eines Ersatzes für das Asp:ContentPlaceHolder-Steuerelement innerhalb des SharePoint:PageTitle -Steuerelements überschreiben.
ASP.NET-Seiten
Ein JavaScript oder eine CSS-Datei aufnehmen möchten, verwenden Sie die gleichen SharePoint:ScriptLink und SharePoint:CssLink Steuerelemente, die im vorherigen Abschnitt beschrieben.
In früheren Versionen von SharePoint schreibt einige Seiten die Inhalte mithilfe der Response.Output -Eigenschaft. Wenn Sie MDS verwenden, ist dies nicht mehr zulässig. Sie müssen die Aufrufe von Response.Output verwendet eine neue API zu ändern. Die folgende Tabelle enthält APIs, die häufig verwendet werden in SharePoint-Seiten und der neuen MDS-kompatibles-API.
Tabelle 3. Häufig verwendete APIs und die zugehörigen MDS-kompatible Alternativen
Wenn eine Seite, ein Steuerelement oder ein Webpart die Ausgabe an die Response.Output-Eigenschaft leitet, führt MDS ein Failback durch. Dazu wird eine komplett Navigation zu der gewünschten Seite ausgeführt. Mithilfe der DeltaPage ._shipRender -Eigenschaft während des Debuggens Serverkomponente finden Sie das betreffende Steuerelement.
Ersetzen Sie die eingebundenen HTML-Skriptelemente durch SharePoint:ScriptBlock-Steuerelemente. Nachfolgend finden Sie ein eingebundenes HTML-Skriptelement und das dazugehörige MDS-kompatible, alternative SharePoint:ScriptBlock-Steuerelement.
Eingebundenes HTML-Skriptelement
<script type="text/javascript"> // Your JavaScript code goes here. </script>
MDS-kompatible Alternative
<SharePoint:ScriptBlock runat="server"> // Your JavaScript code goes here. </SharePoint:ScriptBlock>
Die Einführung der SharePoint:ScriptBlock auf der Seite kann den Bereich der Variablen auf der Seite ändern. Manchmal ist es erforderlich, verschieben die Deklaration von Variablen von <% %>
zu <script runat="server"> <script>
. Laden Sie die Seite im Browser nach Updates ausführen, um dies zu testen.
Hinweis
Die MDS-Infrastruktur unterstützt VBScript nicht, da es nicht als Skript in ASP.NET erfasst werden kann. Skripts müssen in JavaScript konvertiert werden.
Links auf ASP.NET-Seiten müssen für die Verwendung des SPUpdatePage-Typs aktualisiert werden. Nachfolgend finden Sie Links auf ASP.NET-Seiten und die gleichen, mit dem SPUpdatePage-Typ aktualisierten Links.
Link in ASP.NET
<a id=<%_STSWriteHTML("viewlist" + spList.BaseTemplate.ToString());%> href=<%_STSWriteURL(listViewUrl);%> .. </a>
MDS-kompatible Alternative
<a id=<%_STSWriteHTML("viewlist" + spList.BaseTemplate.ToString());%> href=<%_STSWriteURL(listViewUrl);%> onclick="if (typeof(SPUpdatePage) !== 'undefined') return SPUpdatePage(this.href);"> .. </a>
Benutzerdefinierte Masterseiten für Fehler
Auch wenn Sie eine benutzerdefinierte Gestaltungsvorlage für die Fehler verwenden, können Sie Fehlermeldungen in MDS-Modus anzeigen. Um eine benutzerdefinierte Gestaltungsvorlage für Fehler im MDS-Modus verwenden, müssen Sie ein AjaxDelta in der Gestaltungsvorlage Fehler definieren, die die Id -Eigenschaft auf die Zeichenfolge "DeltaPlaceHolderMain" festgelegt wurde. Der Inhalt der Fehlermeldung muss in der AjaxDelta gerendert werden. Wenn die Fehlerseite vom Server an den Browser zurückgegeben wird, wird der Browser identifiziert dies als der Hauptinhalt angezeigt und zeigt es dem Benutzer.
Obwohl die Masterseite für die Fehlerseite und die Masterseite für start.aspx sind kein explizite Übereinstimmung, kann den Browser zu erkennen, dass ein Fehler aufgetreten ist. Der Browser ermöglicht MDS den entsprechenden Fehlermeldungen Nachrichteninhalt innerhalb der vorhandenen Masterseite verwenden, um eine konsistente und reibungslose benutzererfahrung verwalten.
JavaScript-Dateien
JavaScript Dateien sollte nur Deklarationen enthalten. Es gibt dennoch viele legacy-Skripts, die globalen Variablen wie enthalten. Globale Variablen müssen erneut initialisiert werden, wenn eine neue Seite im Modus MDS gerendert wird. Sie können die ExecuteAndRegisterBeginEndFunctions verwenden, um globalen Variablen zu initialisieren. Im folgenden Codebeispiel wird veranschaulicht, wie die ExecuteAndRegisterBeginEndFunctionsverwenden.
function ExecuteAndRegisterBeginEndFunctions(tag, beginFunc, endFunc, loadFunc)
Die ExecuteAndRegisterBeginEndFunctions hat die folgenden Parameter:
- tag: der Name der Datei, die die Rückrufe; registriert Es wird nur zu Debuggingzwecken verwendet.
- beginFunc: eine Funktion, die aufgerufen wird, bevor Sie das Seite Delta anfordern.
- endFunc: eine Funktion, die aufgerufen wird, nachdem Sie das Delta abgerufen, jedoch bevor der HTML- und JavaScript für die neue Seite angewendet werden.
- loadFunc: eine Funktion, die nach der HTML- und JavaScript aufgerufen wird, für die neue Seite angewendet wird.
Steuerelemente und Webparts
Um MDS zu verwenden, müssen Steuerelemente und Webparts Seitenressourcen mithilfe des SPPageContentManager-Objekts registrieren. Die am häufigsten registrierten Ressourcen mit SPPageContentManager sind JavaScript Snippets (Funktionen oder JSON-Variablen) und ausgeblendeten Feldern. Die folgende Tabelle zeigt gängiger Muster für das Einfügen von ausgeblendeten Felder und JavaScript Codeausschnitte und wie Sie die gleichen mithilfe des SPPageContentManager -Objekts.
Tabelle 4. Allgemeine Methoden für das Rendering des Inhalts und die zugehörigen MDS-kompatible Alternativen
Übliche Vorgehensweise beim Rendern von Inhalten | MDS-kompatible Alternative |
---|---|
output.Write("<input type=\\"hidden\\" name=\\""); output.Write(SPHttpUtility.NoEncode("HiddenField)); output.Write("\\" value=\\""); output.Write(DigestValue); output.Write("\\" />"); |
SPPageContentManager.RegisterHiddenField(this, "HiddenField", DigestValue); |
Page.ClientScript.RegisterClientScriptBlock(typeof(MyType), "MyKey", "var myvar=1", true); |
SPPageContentManager.RegisterClientScriptBlock(this, typeof(MyType), "MyKey", "var myvar=1"); |
Hinweis
Die Funktionen RegisterHiddenField und RegisterClientScriptBlock im SPPageContentManager-Objekt erwarten, dass sich ein Objekt vom Typ Steuerelement oder Seite im ersten Parameter befindet.
Das Modul MDS verwendet den ersten Parameter, um die Skripts filtern. Hier werden die Regeln für die Filterung beim Rendern einer Seite im MDS Deltamodus:
- Wenn das erste Argument vom Typ Seite ist, werden die Skripts im Browser ausgeführt.
- Wenn das erste Argument nicht vom Typ Seite ist und das Steuerelement unter einem SharePoint:AsyncDelta fällt, werden im Browser die Skripts ausgeführt.
- Wenn das erste Argument ein Webpart ist, werden die Skripts im Browser ausgeführt.
Viele APIs in früheren Versionen von SharePoint hat das aktuelle Steuerelement als ein Argument nicht bereitgestellt. Das public-Objektmodell in SharePoint bietet eine alternative Methode, um die Ressourcen zu registrieren. Die Methoden, die das aktuelle Steuerelement als Argument keine bereitstellen sind weiterhin in der API für Abwärtskompatibilität.
Sie können zwischen zwei Seiten mithilfe einer neuen Funktion mit dem Namen SPUpdatePagenavigieren. Wenn ein Steuerelement oder Webpart im MDS-Deltamodus gerendert wird, müssen die HyperLink-Steuerelemente den onclick-Handler hinzufügen und SPUpdatePage aufrufen.
Sie müssen die von Webparts verwendete XSLT aktualisieren, da alle Ressourcen mithilfe des SPPageContentManager-Objekts hinzugefügt werden müssen, um sie MDS-kompatibel zu machen. Sie können die XSLT JavaScript Snippets mithilfe der Methods RegisterScriptLink und RegisterScriptBlock des SPPageContentManager -Objekts hinzufügen.
Optimieren der Seite downloads
Nachdem Sie den Aufbau einer Seite verstanden haben, können Sie verschiedene Methoden verwenden, um das Download-Erlebnis für diese Seite zu optimieren. Das Ziel ist im Allgemeinen, die Anzahl der Roundtrips zwischen Client- und Servercomputern zu minimieren und die Menge der Daten zu verringern, die über das Netzwerk geleitet werden. Die Anweisungen in diesem Artikel enthalten Empfehlungen, die Sie allgemein auf einer Vielzahl von anderen Implementierungen von SharePoint anwenden können.
In Tabelle 5 sind Ladezeiten aufgeführt, die den Unterschied zwischen dem ersten, zweiten und nachfolgenden Laden der Seite veranschaulichen.
Tabelle 5. Seitenladezeiten
Meilenstein | Dauer |
---|---|
Laden der ersten Seite | 3-4 Sekunden |
Laden der zweiten Seite | 15 Sekunden |
Die Seite anschließend geladen | 1 Sekunde |
Hinweis
Die Ladezeiten können in Ihrem Szenario unterschiedlich sein. Die Ladezeiten werden von vielen Faktoren beeinflusst, einschließlich, aber nicht beschränkt auf die Seitengröße, die Latenz und die Serverlast.
Sie sollten seitenoptimierungstechniken in zwei Kategorien unterteilt: die erste Seite Anforderung und nachfolgende Seitenanforderungen. Optimierungen für die erste Seitenanforderung (Seite des Ladens 1 oder PLT1) sind diese Arten von Optimierungen, die eine effektive erstmals die Seite angefordert wird, jedoch nicht unbedingt nachfolgende Seitenanforderungen beeinträchtigt werden. Im folgenden sind einige Optimierungen für PLT1:
- Optimieren Sie HTML-Markup.
- Konsolidierte Bilder und Dateien verwenden; Kombinieren Sie z. B. mehrere CSS-Dateien in einer. Kombinieren Sie Bilder in einem Bildstreifen oder Cluster.
- Verwenden Sie Techniken zum Komprimieren (Crunchen). Weitere Informationen finden Sie unter Komprimieren (Crunchen) von JavaScript- und CSS-Dateien.
- Stellen Sie sicher, dass Sie die Produktionsversion üblichen JavaScript Bibliotheken wie jQuery, anstatt die Debugversionen verweisen.
- Erwägen Sie ein bekanntes Content Delivery Network (CDN) wie das Microsoft Ajax-CDN. Auf den Seiten erforderlichen Dateien möglicherweise bereits vom Clientbrowser zwischengespeichert werden sollen.
Optimierungen für nachfolgende Seitenanforderungen sind die, die die Benutzeroberfläche für eine Auslastung der nachfolgenden Seite verbessert werden kann. Der Schlüssel ist, die Sie benötigen, um Verlust in Funktionalität für die Verstärkung erreicht auszugleichen. Sofern die Leistungssteigerung nur wahrgenommen wird, wenn der Benutzer eine Seite das erste Mal aufruft, ist die Optimierung den Funktionalitätsverlust nicht wert.
Komprimieren Sie (crunchen) JavaScript und CSS-Dateien
Dateien, die JavaScript und Formatvorlagen enthalten möglicherweise stark verkleinert werden durch Entfernen von Leerzeichen, Formatvorlage Vererbung und Wiederverwendung von Code. Einige Bibliotheken sind in regulären (Debug) und komprimierten Versionen (crunched). Sie können eine Vielzahl von Tools zum Automatisieren der Datei crunching über eine Suche im Internet suchen.
Stellen Sie sicher, dass die komprimierten Versionen in Produktionsservern bereitgestellt werden. Dieses Beispiel zeigt, wie eine CSS-Datei in Größe über einige relativ einfach Umschreiben von Adressen reduziert werden kann.
.article-ByLine {
font-family: Tahoma, sans-serif;
font-size: 9.5pt;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #000000;
}
.article-Caption {
font-family: Tahoma, sans-serif;
font-size: 8pt;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #000000;
}
.article-Headline {
font-family: Tahoma, sans-serif;
font-size: 14pt;
font-style: normal;
line-height: normal;
font-weight: bold;
color: #000000;
}
.article-SubHead {
font-family: Tahoma, sans-serif;
font-size: 11pt;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #000000;
}
.article-Text {
font-family: Tahoma, sans-serif;
font-size: 10pt;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #000000;
}
In der Regel finden Sie Verfahren zum Erreichen der gleichen Stil und verringern Sie die Größe der Dateien von effizient umschreiben CSS-Dateien. Im folgenden Beispiel wird veranschaulicht, wie auf die vorherige Größe CSS optimieren, indem Sie die Formatvorlagen von einem übergeordneten Element erben.
BODY {
font: 100% Tahoma, sans-serif;
}
.art-By {
font: 79%;
}
.art-Cap {
font: 67%;
}
.art-Head {
font: bold 117%;
}
.art-Sub {
font: 92%;
}
.art-Txt {
font: 83%;
}
Die erste Version des CSS ist 783 Zeichen lang sein darf, und die zweite beträgt 140 Zeichen lang sein darf.
Entity-tags
Entitätstags (ETags) kann den Client Dateien unnötig erneut zu laden. ETags sollen Dateien anhand einer Zahl, die der Server generiert eindeutig zu identifizieren. In der Server-Clustern wird jeder Server eine unterschiedliche Anzahl erstellt. Beispielsweise ist ein Browser Get -Methode mit einem If-Modified -Header-Feld für eine Datei senden, die es in seinem Cache gefunden. Ist nur einen Server, die Datei wird wahrscheinlich übereinstimmen, und ein 304 Not-Modified HTTP-Status wird gesendet. Aber, wenn der Benutzer auf eine große Serverfarm zugreift, wird es wahrscheinlich einen anderen Server mit einem anderen Entitätstag, verursacht diese Server zum Senden der Datei an den Browser erreicht.
Cacheeinstellungen
Verwenden Sie Fiddler oder einem ähnlichen Tool wird überprüft, ob der Cache Anforderungen verarbeitet wird. Häufige Ursachen für Zwischenspeichern nicht verarbeiten Anforderungen umfassen:
- Einen Datumswert Ablauf keine Ressourcen.
- Die Abfragezeichenfolge ändert ständig.
- Die Summe der Max-Age cachesteuerelement Richtlinie plus last-modified Header erzeugt ein Datum vor heute.
- Die Max-Age -Eigenschaft unterstützt die Proxy-Server nicht.
- Der Cache-Control- Header hat den Wert Nein-Cache. Ein Wert von privaten speichert die Ressource nur für den Benutzer, der die Anforderung ausgibt.
Anzahl und Größe von Bildern
Sie sollten die Anzahl der Bilder auf Ihrer Website minimieren. Dazu können Sie mehrere Bilder in eine einzige Datei einbetten und dann auf Ihrer Seite auf einzelne Bilder verweisen. Auf diese Weise wird nicht nur die Download-Größe herabgesetzt, sondern weniger Dateien führen auch zu einem niedrigeren Netzwerkverkehr. Diese Technik ist bei Autorenseiten komplizierter, aber in Situationen, in denen jeder Roundtrip und jede Dateigröße zählt, kann die Methode nützlich sein, um die Leistung zu verbessern.
Abbildung 3 zeigt eine einzelne Bilddatei, die mehrere Bilder enthält.
Abbildung 3: Datei mit nur einem Bild, die mehrere Bilder enthält
Abbildung 4 zeigt, wie die Bilddatei später geändert wird, um als einzelne Bilder in einer Tabelle anzuzeigen.
Abbildung 4: Mehrere in einer Tabelle dargestellte Bilder
Die Änderung dieser Bilder erfolgt komplett über Stylesheetklassen. Es wurden zwei primäre Klassen in div- und img-Elementen in jeder Tabellenzelle verwendet. Diese Klassen lauten wie folgt:
BODY {
font: 100% Tahoma, sans-serif;
}
.art-By {
font: 79%;
}
.art-Cap {
font: 67%;
}
.art-Head {
font: bold 117%;
}
.art-Sub {
font: 92%;
}
.art-Txt {
font: 83%;
}
.cluster {
height: 50px;
position: relative;
width: 50px;
}
.cluster img {
position: absolute;
}
Jedem Bild ist basierend auf dem Bezeichner (ID) für das Bild eine Klasse zugeordnet. Dieser Stil beschneidet das Bild und definiert ein Offset aus dem anfänglichen Bild im Cluster. Diese Klassen lauten wie folgt:
#person {
border: none;
clip: rect(0, 49, 49, 0);
}
#keys {
clip: rect(0, 99, 49, 50);
left: -50px;
}
#people {
clip: rect(0, 149, 49, 100);
left: -100px;
}
#lock {
clip: rect(0, 199, 49, 150);
left: -150px;
}
#phone {
clip: rect(0, 249, 49, 200);
left: -200px;
}
#question {
clip: rect(0, 299, 49, 250);
left: -250px;
}
Listenansichtsseiten
Microsoft hat funktioniert, um quantifizieren und Verbessern der Leistung der Liste Ansicht Seite Rendering Zeiten. Eine Seite mit der Listenansicht ist die AllItems.aspx-Seite, die von jedem Listen- und Bibliotheksdaten zum Durchsuchen von Inhalten aktivieren verwendet wird. Die Renderingzeit dieser Seite kann in Abhängigkeit der Anzahl an Spalten, die in der Ansicht sichtbar sind, und des Formats der Spalten stark variieren. Beispielsweise können Optionen anzeigen und Aktivieren von Anwesenheitssymbole Renderzeit erheblich beeinträchtigen. Die Gruppierungsoption reduzierten wesentlich länger als die Gruppierungsoption erweiterte gerendert wurde, und beide wurden in allen langsamer als die Gruppierungsoption keine.
Diese Art von Nuancen sind, warum es ist wichtig, überlegen Sie sich wie Ansichten in der Liste anzeigen, Seiten anzeigen, insbesondere über langsame Verbindungen erstellt werden. Bei der Verwendung von Listen, die eine große Datenmenge enthalten ist es wichtig, alle Ansichten, insbesondere die Standardansicht sorgfältig entwerfen. Im Allgemeinen können Sie die Zeit für das Rendering von Listenansichtsseiten beschleunigen, mithilfe der folgenden Empfehlungen:
- Nur die unbedingt erforderlichen Spalten anzeigen.
- Wenn möglich, schließen Sie Spalten aus, die Anwesenheitsinformationen enthalten.
- Verwenden Sie einen Link zum Anzeigen der Elementdetails anstelle einer im Bearbeitungsmenü.
In der folgenden Tabelle sind die Anpassungen beschrieben, mit denen die zum Rendern einer Ansicht erforderliche Zeit reduziert wird.
Tabelle 6. Anpassungen, die den Zeitaufwand zum Rendern der Ansicht reduzieren
Element | Beschreibung |
---|---|
Ansichtstyp | Erstellen Sie eine Ansicht als Datenblattansicht und nicht als Standardansicht. |
Ansicht: Elementgrenzwert | Alles über 1.000 wird wahrscheinlich langsam gerendert. Über eine langsame Verbindung ist es wichtig, zu der ein Gleichgewicht zwischen der Menge der Daten aufgeführt und die Anzahl von Roundtrips erforderlich sind, um alle Daten anzuzeigen. Je mehr Zeilen, die an eine Zeit, die weniger Roundtrips aber größere Seiten angezeigt werden. |
Ansicht: Filter | Verwenden Sie die Schlüsselwörter [Aktuell] und [Ich], um Elemente nach Aktualität oder Zuordnung zu filtern. Verwenden Sie Statusfelder, um nur die aktiven Elemente in Standardansichten anzuzeigen. |
Ansicht: Spalten | Fügen Sie die kleinste Anzahl an Spalten ein. Erstellen Sie eine Standardansicht mit wenigen Spalten, die ein Browsen auf höchster Stufe ermöglicht, nachdem Benutzer ein Drilldown ausführen können. |
In der folgenden Tabelle sind die Anpassungen beschrieben, mit denen die zum Rendern einer Ansicht erforderliche Zeit erhöht wird. Mit jeder zusätzlichen Spalte wird die Renderingzeit um eine geringe Menge erhöht: bis zu einer halben Sekunde pro Spalte bei einer schnellen Netzwerkverbindung für eine Liste mit 1.000 Elementen. Wie in der Tabelle angemerkt ist, wird die Renderingzeit bei einigen Spalten mehr erhöht als bei anderen.
Tabelle 7. Anpassungen, die den Zeitaufwand zum Rendern der Ansicht erhöhen
Element | Beschreibung |
---|---|
Gruppieren nach | Beim Gruppieren werden HTML und JScript hinzugefügt, wodurch das Rendering für große Listen verlangsamt wird. Durch das standardmäßige Erweitern aller Gruppen wird die Renderingzeit aufgrund zusätzlicher Vorgänge im Browserobjektmodell weiter erhöht. |
Spalte - Hyperlink zu Element mit Menü Bearbeiten | Die Option „Hyperlink zum Element mit Menü Bearbeiten“ nimmt am meisten Zeit in Anspruch. Die ähnliche Option „Hyperlink zum Element“ erhöht die Rendering-Zeit nur geringfügig. |
Entwicklerdashboard
Das Entwicklerdashboard ist für SharePoint zum Bereitstellen weiterer Informationen, einschließlich MDS ein neu erstellt. Er ausgeführt wird, in einem separaten Fenster festzulegen, damit Rendering der aktuellen Seite und liefert ausführliche Anforderungsinformationen pro Seite mit einer Diagrammansicht. Darüber hinaus eine dedizierte Registerkarte für Protokolleinträge für eine bestimmte Anforderung Unified Logging System (ULS). Weitere detaillierte Informationen ist für die Analyse der Anforderung enthalten. Ablaufverfolgungsinformationen bieten einen dedizierten Windows Communication Foundation (WCF) Dienst (diagnosticsdata.svc) verwendet.
Erfahren Sie mehr über das Entwicklerdashboard:
- Verwenden des Entwicklerdashboards.
- Entwicklerdashboard erneuert (PowerPoint-Bildschirmpräsentation).
Verwenden Sie zum Aktivieren des Entwicklerdashboards der folgende Codeausschnitt Windows PowerShell.
$content = ([Microsoft.SharePoint.Administration.SPWebService]::ContentService)
$appsetting = $content.DeveloperDashboardSettings
$appsetting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On
$appsetting.Update()
Abbildung 5: Entwicklerdashboard
Es ist wichtig zu verstehen, wie diese Anfragen und die Anzahl der Bilder und Abfragen sich auf die Leistung auswirken. Es gibt Ähnlichkeit zu serverseitig gerenderten Listenansichten (XSL oder CAML), da diese den gleichen Größenempfehlungen wie clientseitig gerenderte Listenansichten folgen. Die Serverlistenansicht-Anleitung ist jedoch nur für die Erstellung von Listenansichten für die Erfüllung Ihrer Anforderungen gedacht, wenn Ihr Ziel eine optimale Leistung ist, da Tausende von Ansichten aufgrund der Zwischenspeicherverwaltung eine höhere Leistungsminderung bedeuten. Die physischen Merkmale des Computers, wie z. B. die Arbeitsspeicher- und Prozessorgeschwindigkeit, wirken sich auf die Gesamtgeschwindigkeit aus.
Es muss berücksichtigt werden, wohin die Anforderungen weitergeleitet oder wie sie verteilt werden. Damit Sie besser verstehen, wie SharePoint Anforderungen weiterleitet und verteilt, können Sie das Anforderungs-Manager-Tool verwenden. Eine detaillierte Erklärung der Anforderungsverteilung würde den Rahmen dieses Artikels sprengen. Weitere Informationen finden Sie unter Konfigurieren des Anforderungs-Managers in SharePoint.
Schlussbemerkung
Ein Großteil der Richtlinien für die SharePoint 2010 Seite zur Optimierung der Leistung auf SharePoint angewendet wird. Dieser Artikel enthält einige der Elemente von Richtlinien für die SharePoint 2010 beim Einstieg in die neuen Bereiche, die speziell Leistung profitieren würden. Wir haben behandelt einige Verbesserungen, beispielsweise MDS und die erweiterte Entwicklerdashboard oder offensichtlich geändert wird. Wir mit der klassischen Anleitung eingeschlossen: Crunch nach unten JavaScript und cascading Stylesheets, ein CDN für allgemeine JavaScript Bibliotheken nach Möglichkeit zum Zwischenspeichern, kombinieren und Bilder so weit wie möglich komprimieren, beschränken oder Entfernen nicht benötigte Daten aus der Ansicht und erstellen Listenansichten überlegt, verwenden. Die Techniken und Funktionen, die in diesem Artikel erläuterten mitwirken für die Unterstützung der Leistungsziele.