利用Filter对asp.net页面进行压缩
if (!Request.UserAgent.ToLower().Contains("konqueror"))
{
if (Request.Headers["Accept-encoding"] != null &&
Request.Headers["Accept-encoding"].Contains("gzip"))
{
Response.Filter = new GZipStream(Response.Filter,
CompressionMode.Compress, true);
Response.AppendHeader("Content-encoding", "gzip");
}
else if (Request.Headers["Accept-encoding"] != null &&
Request.Headers["Accept-encoding"].Contains("deflate"))
{
Response.Filter = new DeflateStream(Response.Filter,
CompressionMode.Compress, true);
Response.AppendHeader("Content-encoding", "deflate");
}
}
这断代码是在codeproject上无意中找到的,感觉非常好,特拿来分享。
Request.UserAgent.ToLower().Contains("konqueror"))
这句话是用来过滤掉konqueror浏览器,据原作者说这个浏览器对gzip和deflate可能支持不好,有bug。
这里笔者还发现一个问题如果Response.BufferOutput=false的话,这断代码就不好用了,大家使用的时候要注意。

浙公网安备 33010602011771号