/// <summary> /// 缓存 /// </summary> /// <param name="instance">HttpContext扩展</param> /// <param name="durationInMinutes">时间</param> public static void CacheKD(this HttpContext instance, int durationInMinutes) { instance.CheckOnNull("instance"); TimeSpan duration = TimeSpan.FromMinutes(durationInMinutes); HttpCachePolicy cache = instance.Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetExpires(DateTime.Now.Add(duration)); cache.AppendCacheExtension("must-revalidate, proxy-revalidate"); cache.SetMaxAge(duration); }
/// <summary> /// 缓存 /// </summary> /// <param name="instance">HttpContext扩展</param> /// <param name="duration">时间差</param> public static void Cache(this HttpContext instance, TimeSpan duration) { instance.CheckOnNull("instance"); HttpCachePolicy cache = instance.Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetOmitVaryStar(true); cache.SetExpires(instance.Timestamp.Add(duration)); cache.SetMaxAge(duration); cache.SetValidUntilExpires(true); cache.SetLastModified(instance.Timestamp); cache.SetLastModifiedFromFileDependencies(); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); }
/// <summary> /// gzip压缩 /// </summary> /// <param name="instance">HttpContext扩展</param> public static void Compress(this HttpContext instance) { instance.CheckOnNull("instance"); HttpRequest httpRequest = instance.Request; if ((httpRequest.Browser.MajorVersion < 7) && httpRequest.Browser.IsBrowser("IE")) return; //IE7以下版本不支持 if (instance.IsEncodingAccepted("gzip")) { instance.Response.Filter = new GZipStream(instance.Response.Filter, CompressionMode.Compress); instance.SetEncoding("gzip"); } else if (instance.IsEncodingAccepted("deflate")) { instance.Response.Filter = new DeflateStream(instance.Response.Filter, CompressionMode.Compress); instance.SetEncoding("deflate"); } }