[.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 程序设计

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

相关文章
相关标签/搜索