2009-06-03 3 views
5

Ich habe Yahoos YSlow benutze meine Seiten gehen schneller auf AgentXCompress Filter + MVC + Yahoo YSlow

ich die unten Kompresse Filter verwenden, um zu versuchen und zu machen. Wenn ich die Site über Visual Studio starte, sagt YSLOW, dass alle Dateien komprimiert sind und ich ein A bekomme, wenn ich die Live-Site betrachte, bekommt sie ein E und sagt, dass meine Dateien gezippt werden müssen. Kann mir jemand erklären?

public class CompressFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     HttpRequestBase request = filterContext.HttpContext.Request; 

     string acceptEncoding = request.Headers["Accept-Encoding"]; 

     if (string.IsNullOrEmpty(acceptEncoding)) return; 

     acceptEncoding = acceptEncoding.ToUpperInvariant(); 

     HttpResponseBase response = filterContext.HttpContext.Response; 

     if (acceptEncoding.Contains("GZIP")) 
     { 
      response.AppendHeader("Content-encoding", "gzip"); 
      response.Filter = new GZipStream(response.Filter, 
       CompressionMode.Compress); 
     } 
     else if (acceptEncoding.Contains("DEFLATE")) 
     { 
      response.AppendHeader("Content-encoding", "deflate"); 
      response.Filter = new DeflateStream(response.Filter, 
       CompressionMode.Compress); 
     } 
    } 
} 
+0

Können Sie Firebug oder Fiddler und die Anfrage- und Antwortdaten veröffentlichen, auf Ihre Live-Web-Seite? –

+0

Okay, das funktioniert eigentlich gut von zu Hause aus und funktioniert nicht. Bei der Arbeit gehen wir durch Web-Marshall-Proxy, also vielleicht deshalb. Jedenfalls bin ich glücklich, diese Fragen zu beantworten. Danke fürs schauen. – Skiltz

Antwort

2

Ich benutze den gleichen Mechanismus auf meiner Website:

http://www.avantprime.com/articles/view-article/7/compress-httpresponse-for-your-controller-actions-using-attributes

ich Fiedler schlage vor, mit der Live-Website, um zu sehen, ob Ihre Antwort tatsächlich komprimiert und dann können Sie bestimmen, ob es mit etwas nach oben ist YSlow oder mit deinem Code.

Ich schlage vor, dass Sie Google Pagespeed auch http://code.google.com/speed/page-speed/ ausführen. Dies macht die gleiche Arbeit wie YSlow, aber von Google gemacht. Verschiedene Algorithmen für einige Dinge.

DaTribe