如題,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();

}

welkingunther 發表在 痞客邦 PIXNET 留言(0) 人氣()