2009-06-03 1 views
5

Я использую в Yahoo YSlow, чтобы попытаться сделать мои страницы быстрее на AgentXСжать фильтр + MVC + Yahoo YSlow

Я использую ниже компрессионный фильтр. Когда я запускаю сайт через визуальную студию, YSLOW говорит, что все файлы сжаты, и я получаю A, когда я просматриваю сайт, на котором он получает E, и говорит, что мои файлы должны быть gzipped. Может ли кто-нибудь объяснить?

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

Вы можете использовать Firebug или Скрипач и отправить данные запросов и ответов, на ваш живой веб-страницы? –

+0

Хорошо, что на самом деле это нормально работает и не работает. На работе мы проходим через прокси-сервер marshall, поэтому, возможно, именно поэтому. Во всяком случае, я счастлив закрыть эти вопросы. Спасибо, что посмотрели. – Skiltz

ответ

2

Я использую тот же механизм на моем сайте:

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

Я предлагаю использовать скрипач, чтобы увидеть, если ваш ответ от живого сайта на самом деле сжимается, а затем вы можете определить, есть ли что-то с YSlow или с вашим кодом.

Я предлагаю вам запустить google pagepeed также http://code.google.com/speed/page-speed/. Это делает ту же работу, что и YSlow, но сделанную Google. Различные алгоритмы для некоторых вещей.

DaTribe

Смежные вопросы