[.net 面向對象程序設計進階] (14) 緩存(Cache) (一) 認識緩存技術

[.net 面向對象程序設計進階] (14) 緩存(Cache)(認識緩存技術html

本節導讀:jquery

緩存(Cache)是一種用空間換時間的技術,在.NET程序設計中合理利用,能夠極大的提升程序的運行效率。編程

本節將介紹如何利用緩存寫出高效率的代碼。windows

1. 什麼是緩存(Cache)?瀏覽器

緩存(Cache)是一種用空間換取時間的技術緩存

存在於計算機中不少地方,用來將一些慢速設備中的經常使用數據保存在快速設備中,取數據的時候直接從快速設備中取。安全

好比CPU二級緩存、內存、windows文件讀取緩存。服務器

2. .NET緩存技術分類cookie

.NET的緩存從軟件架構角度分爲客戶端緩存和服務器端緩存.session

這裏主要介紹幾種經常使用的緩存技術:

基於Web客戶端緩存:Cookies

基於Sever端緩存:SessionApplication、Cache

3. 緩存的優缺點

緩存的優勢:以空間換取時間,經過緩存,提升了訪問效率。

緩存的缺點:對於即時性要求較高的程序來講,緩存不具有即時性。

所以咱們在使用緩存技術時,要充分考慮使用環境,合理利用緩存。

最經常使用的工廠反射模式中,咱們就能夠利用緩存來存儲動態反射的對象,以備下次訪問時,快速返回.

4.客戶端緩存Cookies

4.1 Cookie應用場景 

Cookie能夠保持登陸信息到用戶下次與服務器的會話,換句話說,下次訪問同一網站時,用戶會發現沒必要輸入用戶名和密碼就已經登陸了(固然,不排除用戶手工刪除Cookie)。而還有一些Cookie在用戶退出會話的時候就被刪除了,這樣能夠有效保護我的隱私。

主流的瀏覽器都默認支持Cookie,因爲Cookie會記錄用戶的一些信息,所以出現了不少廣告窗,就是利用這一特性,能知道咱們最近都瀏覽和關注了什麼,從而定向顯示廣告。

4.2 Cookies的生命週期

Cookie在生成時就會被指定一個Expire值,這就是Cookie的生存週期,在這個週期內Cookie有效,超出週期Cookie就會被清除。有些頁面將Cookie的生存週期設置爲「0」或負值,這樣在關閉瀏覽器時,就立刻清除Cookie,不會記錄用戶信息,更加安全。

所以Cookie的生命週期,只要不清除,就一直存在於緩存文件中。

4.3 Cookie的使用

Cookie在Web的應用很是普遍。下面列舉咱們經常使用的Jquery庫中對Cookie的操做

先說一下Jquery庫,目前能夠說是Javascript的標準庫了,操做簡單,輕量級,很是受歡迎。因爲本系列主要討論的是.NET面向對象程序設計,咱們下面,簡單的列舉出基於Jquery庫的一個Cookie操做組件:jquery.cookie.js

使用方法

A.新添加一個會話 cookie

$.cookie('the_cookie', 'the_value');

注:當沒有指明 cookie有效時間時,所建立的cookie有效期默認到用戶關閉瀏覽器爲止,因此被稱爲

會話cookiesession cookie

B.建立一個cookie並設置有效時間爲 7:

$.cookie('the_cookie', 'the_value', { expires: 7 });

注:當指明瞭cookie有效時間時,所建立的cookie被稱爲持久 cookie persistent  cookie 

C.建立一個cookie並設置 cookie的有效路徑:

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

注:在默認狀況下,只有設置 cookie的網頁才能讀取該 cookie。若是想讓一個頁面讀取另外一個頁面設

置的cookie,必須設置cookie的路徑。cookie的路徑用於設置可以讀取 cookie的頂級目錄。將這

個路徑設置爲網站的根目錄,可讓全部網頁都能互相讀取 cookie (通常不要這樣設置,防止出現衝突) 。 

D.讀取cookie

$.cookie('the_cookie'); // cookie存在 => 'the_value'

$.cookie('not_existing'); // cookie不存在 => null

E.刪除cookie,經過傳遞null做爲cookie的值便可:

$.cookie('the_cookie', null); 

5. SessionApplication

5.1 Session .NET 5 中應用

以下: 

 <div style="position:fixed;top:200px;left:200px;width:200px;height:200px;text-align:center; line-height:100px;">

    @{
        ViewBag.Title = "Home Page";
        Session["user"] = "yubinfeng";
        string user = Session["user"] is Nullable ? "" : Session["user"].ToString();
     }
    Session 讀取:  @Html.Raw(user)  <br>
</div>

上面代碼中括號中,使用的是MVC中的一些頁面語法,後面會涉及到,這裏主要說明Session的賦值及取值。

運行MVC項目結果以下:

 

Seeion生命週期是會話級,一個會話結束Session失效,打開一個瀏覽器請求一個網站的頁面後,Session開始,當session超過期間限制(通常是20分種)後,session註銷而失效 或是人爲使用session.invalidate();使用session失效。

5.2 Application

另外一個Application WebForm爲應用程序級的存儲,生命週期爲服務端應用程序啓用動時開始到應用程序重啓失效。好比公共在線人數等存儲能夠用到,在MVC框架中會有更好的實現服務器級存儲的方法,後面在MVC的時候具體介紹。

6. 要點:

本節主要介紹了緩存的基礎知識及幾種緩存的簡單應用,下一節重點說明服務器端的緩存Cache,這也是咱們.NET程序設計的重點。

==============================================================================================  

 返回目錄

 <若是對你有幫助,記得點一下推薦哦,若有有不明白或錯誤之處,請多交流>  

<對本系列文章閱讀有困難的朋友,請先看《.net 面向對象編程基礎》>

<轉載聲明:技術須要共享精神,歡迎轉載本博客中的文章,但請註明版權及URL>

.NET 技術交流羣:467189533    .NET 程序設計

==============================================================================================   

相關文章
相關標籤/搜索