زمانیکه صفحهای لود میشود، به همراه خود محتویاتی از قبیل تصویر و فایلهای جاوا اسکریپت را نیز به سیستم کاربر حمل میکند. در ASP.NET میتوان از خاصیت فشرده سازی gzip , gzip جهت ارائه محتویات سرور استفاده کرد:
برای پیاده سازی آن میتوان از رویداد Application_PreRequestHandlerExecute در فایل Global.asax استفاده کرد:
using System; using System.IO.Compression; using System.Web; using System.Web.UI; namespace GZipTest { public class Global : HttpApplication { void Application_PreRequestHandlerExecute(object sender, EventArgs e) { var app = sender as HttpApplication; if (app == null) return; var acceptEncoding = app.Request.Headers["Accept-Encoding"]; var prevUncompressedStream = app.Response.Filter; if (!(app.Context.CurrentHandler is Page || app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") || app.Request["HTTP_X_MICROSOFTAJAX"] != null) return; if (string.IsNullOrEmpty(acceptEncoding)) return; acceptEncoding = acceptEncoding.ToLower(); if (acceptEncoding.Contains("deflate") || acceptEncoding == "*") { // defalte app.Response.Filter = new DeflateStream(prevUncompressedStream, CompressionMode.Compress); app.Response.AppendHeader("Content-Encoding", "deflate"); } else if (acceptEncoding.Contains("gzip")) { // gzip app.Response.Filter = new GZipStream(prevUncompressedStream, CompressionMode.Compress); app.Response.AppendHeader("Content-Encoding", "gzip"); } } } }