如題,Cache可以讓多個網頁和使用者共用資源
當要從資料庫撈很久的資料時,可以先撈一次
就把撈到的資料丟到Cache裡,之後的使用者就可以
快速的看到這些資料啦
或是有些控制項做分頁時,當你按到下一頁
它就可以判斷你的Cache裡面有沒有東西
有的話就直接用Cache再繫結一次那個控制項就好
沒有的話再去資料庫撈資料(從資料庫撈資料通常要蠻久的)
//這句可判斷Mydt這個Cache存不存在
if (Cache["Mydt"] == null)
{
//不存在的話就先去資料庫撈資料給一個叫做dt的DataTable後
//再丟給Cache
//這句的意思是Cache用絕對時間到期,產生此Cache過1個小時候會到期
Cache.Insert("Mydt", dt, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
//下面的話是用會變動的過期時間來算,就是每當有人存取,過期時間就會從最
//後存取的時間開始往後算1小時,如果1小時都不再有人存取這個Cache["Mydt"]的話
//就會清掉啦,但是1小時內如果有人存取,就重新開始計算時間
//Cache.Insert("Mydt", dt, null,System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromHours(1));
//另外這邊Cache還有檔案相依(檔案一變動就重新Cache)和SQL變動相依....等等其他的相依來計算過期時間
//之後有寫到再來補充吧QQ"
}
else
{
//這邊else是Cache還存在的情況
//DataSource和DataBind()只是在某些情況下會用到而已
某控制項的.DataSource = (DataTable)Cache["Mydt"];
某控制項.DataBind();
}