5

私は Yahoo の YSLOW を使用して、AgentXでページを高速化しようとしています。

以下の圧縮フィルターを使用しています。Visual Studio でサイトを実行すると、すべてのファイルが圧縮されていると YSLOW が表示され、ライブ サイトを表示すると A が表示され、ファイルを gzip で圧縮する必要があると表示されます。誰でも説明できますか?

    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

フィドラーを使用して、ライブサイトからの応答が実際に圧縮されているかどうかを確認し、YSlowまたはコードに問題があるかどうかを判断することをお勧めします。

googlepagespeedもhttp://code.google.com/speed/page-speed/で実行することをお勧めします。これはYSlowと同じ仕事をしますが、グーグルによって作られました。いくつかのことのための異なるアルゴリズム。

DaTribe

于 2010-10-05T08:06:43.157 に答える
1

IIS 6 で運用環境を実行していますか? おそらくこれが役立つかもしれません。 IIS6 の ASP.NET MVC 圧縮オプション

于 2009-06-03T04:57:08.540 に答える