有没有人知道,有没有可能在IE中压缩我输出的http数据?我执行对服务器的ajax请求,并希望减少流量,以加快我的应用程序的速度。
谢谢,埃戈尔
发布于 2010-09-28 17:46:14
以下是创建压缩过滤器属性的常用方法:
public class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
HttpRequestBase request = actionContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (!string.IsNullOrWhiteSpace(acceptEncoding))
{
acceptEncoding = acceptEncoding.ToLowerInvariant();
HttpResponseBase response = actionContext.HttpContext.Response;
if (acceptEncoding.Contains("gzip"))
{
response.AddHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("deflate"))
{
response.AddHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
}现在你可以用[CompressFilter]属性来修饰你的控制器了。它将向支持压缩报头的浏览器的响应中添加压缩报头,IIS将拾取该报头。如果您已打开动态压缩,则IIS将输出压缩的响应。
https://stackoverflow.com/questions/3811463
复制相似问题