asp.net mvc 2.0-asp.net mvc4.0 OutputCache設置客戶端緩存Bug
廣告:
asp.net mvc 2.0-asp.net mvc4.0 OutputCache設置客戶端緩存Bug
知識點:
靜態文件如index.html一般默認客戶端是有緩存的,但是要更新index.html只有加index.html?t=25364這樣的臨時參數了。
其實也可以在程序中這樣設置:Response.Cache.SetNoStore();不用再加臨時參數 前臺代碼生成這樣的響應頭內容: Cahe-Control:private,no-store 許多瀏覽器都能識別它
另外一個方法就是設置一個已過期的過期時間。
問題:在 ASP.NET MVC 3 中如果使用了 OutputCache設置緩存后,一定要在 Action 中添加下面的代碼,不然只有服務器端緩存,沒有客戶端緩存,切記!
Response.Cache.SetOmitVaryStar(true);
加了以上代碼后,客戶端則有如下標識:
Expires (過期時間)
Expires Sun, 01 Dec 2013 13:33:20 GMT 對應北京時間: Sun, 01 Dec 2013 21:33:20
Last-Modified (最后修改時間,緩存開始生效時間)
Last-Modified Sun, 01 Dec 2013 11:28:20 GMT 對應北京時間: Sun, 01 Dec 2013 19:28:20
以上表示設置瀏覽器客戶端緩存為:7500秒
[OutputCache(Duration =7500, VaryByParam = "none", VaryByCustom = "Crawler")]
public ActionResult Index()
{
Response.Cache.SetOmitVaryStar(true); ////
}
廣告: