Google meldet mir unter der Google Developers Site, dass ich für meine Seite das Caching einsetzen soll.
Diesen hatte ich bisher nicht verwendet oder eingestellt, obwohl ich sehr wohl schon das sehr effektive Server.Caching verwende.
Hier die Meldung von Google
Behebung erforderlich:
Browser-Caching nutzen
Das Festlegen eines Ablaufdatums oder eines Höchstalters in den HTTP-Headern für statische Ressourcen weist den Browser an, zuvor heruntergeladene Ressourcen über die lokale Festplatte anstatt über das Netzwerk zu laden.
Nutzen Sie Browser-Caching für die folgenden cachefähigen Ressourcen:
Die Webseite zur Information von Browser Caching findet man unter:
https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
- http://www.microsoft-programmierer.de/Content/Site.css (Ablaufdatum nicht festgelegt)
Caching wird in MSDN beschrieben unter:
https://msdn.microsoft.com/de-de/library/bb979285.aspx
Zunächst einmal die Möglichkeit den Header einer Ausgabe .aspx Datei verändern.
Im SiteMaster
Hier schreibt man zum Beispiel in den SiteMaster oder in definierte Anzeigeseiten folgende Zeile:
<%@ OutputCache DiskCacheable="true" Location="Any" Duration="60" NoStore="false" VaryByParam="id" CacheProfile="myCache" %>
<%@ Master Language="VB" AutoEventWireup="true" CodeBehind="Site.Master.vb" Inherits="myNamespace.SiteMaster" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ OutputCache DiskCacheable="true" Location="Any" Duration="60" NoStore="false" VaryByParam="id" CacheProfile="myCache" %>
<!DOCTYPE html>
<html lang="de" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head runat="server">..
..
|
Wenn man CacheProfile angibt dann muss man diesen auch in der Config definieren. Ansonsten den Wert einfach weglassen
CacheProfile
|
Die Cache Einstellungen werden aus einem benannten Profil (Profile) geladen. Profiles können in der Datei web.config deklariert werden.
|
In den Ausgabe-Detailseiten :
Wenn man spezielle Detailseiten zur Anzeige hat, oder dynamische AnzeigeListen, dann ist es natürlich besser man legt die OutputCache Anweisung nur hier an.
Denn man muß in diesem Zug ja auch die Eingabeseiten ohne Cache lassen.
Der Parameter VaryByParam gibt an, über welchen URL-Wert die Seite gleich gehalten werden soll oder anders gesagt, was ist die ID einer Seite, worin sie sich unterscheidet.
Deshalb muß ich meiner Details.aspx Anzeigeseite für die einzelnen Berichte im Header folgendes einsetzen und bei Google verifizieren
<%@ OutputCache DiskCacheable="true" Location="Any" Duration="3600" NoStore="false" VaryByParam="d" %>
Vor der Anwendung:
Wunderbar
100/ 100 : mal bitte genau lesen :
Serverfehler in der Anwendung /.
Parserfehler
Beschreibung: Fehler beim Verarbeiten einer Resource, die für diese Anforderung erforderlich ist. Überprüfen Sie folgende Fehlerinformationen und ändern Sie die Quelldatei entsprechend.
Parserfehlermeldung: Das diskcacheable-Attribut wird von der outputcache-Direktive auf einer Seite nicht unterstützt.
Quellfehler:
Zeile 1: <%@ Page Title="Default" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Details.aspx.vb" Inherits="myNamespace._Details" %>
Zeile 2: <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
Zeile 3: <%@ OutputCache DiskCacheable="true" Location="Any" Duration="3600" NoStore="false" VaryByParam="d" %>
Zeile 4:
Zeile 5:
Quelldatei: /Details.aspx Zeile: 3
Versionsinformationen: Microsoft .NET Framework-Version:4.0.30319; ASP.NET-Version:4.0.30319.17929
Fehler: die DiskCacheable="true" darf nicht eingetragen werden
Bei Anwendung der Direktive im axpx Header OutputCache verändert sich die Auswertung bei PageSpeed Insights nicht
<%@ OutputCache Location="Any" Duration="3600" VaryByParam="d" NoStore="true" %>
Nach wie vor 71 / 100
<%@ Page Title="Default" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Details.aspx.vb" Inherits="myNamespace._Details" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ OutputCache Location="Any" Duration="3600" VaryByParam="d" NoStore="true" %>
Weitere Änderungen:..