5

我一直在使用雅虎的 YSLOW 来尝试让我的页面在AgentX上运行得更快

我正在使用下面的压缩过滤器。当我通过 Visual Studio 运行该站点时,YSLOW 说所有文件都已压缩,当我查看实时站点时,我得到一个 A,它得到一个 E,并说我的文件需要压缩。谁能解释一下?

    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);
        }
    }
}
4

2 回答 2

2

我在我的网站上使用相同的机制:

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

我建议使用 fiddler 来查看您来自实时站点的响应是否实际被压缩,然后您可以确定 YSlow 或您的代码是否有问题。

我建议您也运行 google pagespeed http://code.google.com/speed/page-speed/。这与 YSlow 的工作相同,但由谷歌制作。某些事情的不同算法。

大部落

于 2010-10-05T08:06:43.157 回答
1

您是否在 IIS 6 上运行生产?也许这会有所帮助。 IIS6 中的 ASP.NET MVC 压缩选项

于 2009-06-03T04:57:08.540 回答