出力キャッシュを有効にしたい単純なサイトがありますが、ASP.NET Web ページ ( Web フォームや MVC ではなくhttp://asp.net/web-pages ) を使用しています。ガイダンスはありますか?
質問する
1351 次
2 に答える
4
これをサーバーにキャッシュしたいページの一番上に置くことができます:
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByParams.IgnoreParams = true;
フォルダー内のすべてのページをキャッシュする場合は、コードを _PageStart ファイルに配置します。
MSDN の詳細: http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache.aspx
于 2013-09-28T21:26:18.183 に答える
2
次のコードは、必要なすべてを実行し、特定のページの出力キャッシュを微調整するためのオーバーロードがいくつかあります。
@{
var seconds = 600; //10min
Response.OutputCache(seconds);
}
舞台裏では、これはこれを行う System.Web.WebPages.dll アセンブリに含まれる拡張メソッドです。
internal static void OutputCache(HttpContextBase httpContext, HttpCachePolicyBase cache, int numberOfSeconds, bool sliding, IEnumerable<string> varyByParams, IEnumerable<string> varyByHeaders, IEnumerable<string> varyByContentEncodings, HttpCacheability cacheability)
{
cache.SetCacheability(cacheability);
cache.SetExpires(httpContext.Timestamp.AddSeconds((double) numberOfSeconds));
cache.SetMaxAge(new TimeSpan(0, 0, numberOfSeconds));
cache.SetValidUntilExpires(true);
cache.SetLastModified(httpContext.Timestamp);
cache.SetSlidingExpiration(sliding);
if (varyByParams != null)
{
foreach (string index in varyByParams)
cache.VaryByParams[index] = true;
}
if (varyByHeaders != null)
{
foreach (string index in varyByHeaders)
cache.VaryByHeaders[index] = true;
}
if (varyByContentEncodings == null)
return;
foreach (string index in varyByContentEncodings)
cache.VaryByContentEncodings[index] = true;
}
于 2014-04-27T04:54:05.633 に答える