接着上一篇,接着介绍一下缓存,上次的导图算是宏观上面的说法吧,现在具体介绍一下:
缓存原理:
在浏览器对资源的第一次请求之后,把资源中的一部分存储在计算机的临时文件空间,再次请求的时(截止到到缓存数据过期),缓存内容直接发送给用户,而不必再次经过页面处理生命周期,减少HTTP请求次数与传输数据量,以此提高浏览效率
通常情况下,页面输出缓存对于那些包含不需要经常修改内容的,但需要大量处理才能编译完成的页面特别有用。
第一次请求时:
打开的浏览器会对自身设置的参数(如缓存设置参数)进行加载,地址栏输入URL,浏览器发送HTTP请求报文头(网络传输的数据单位)给应用服务器,服务器业务处理完毕给出HTTP响应报文
再次请求:
地址栏输入原来的URL回车,浏览器直接从缓存空间读取原信息,如果这时刷新则是发送HTTP请求,检查服务器,检查文件是否修改,浏览器从缓存中获取信息。
页面输出缓存:
将页面全部内容缓存在服务器内存中,当有客户端再次请求这些内容时,服务器可以直接将these 数据 output ,until the cache data expire,这是一种传统级别的相对简单的缓存机制;对于那些包含不需要经常修改内容的,但需要大量处理才能编译完成的页面特别有用;用法简单,在aspx页面顶部加如下声明:
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ OutputCache Duration="60"VaryByParam="none"%></span>
解析:
Duration:缓存的时间(秒),必选属性
VaryByParam:页面根据使用POST(向服务器提交请求)或GET(向服务器发索取数据的请求))发送的名称/值对(参数)来更新缓存的内容,多个参数用分号隔开;如果不希望根据任何参数来改变缓存内容,将值设置为“none”,如果希望通过所有参数都能更新缓存,属性设置为*;
页面部分缓存:
见字知the meaning ,缓存页面某个部分以便响应用户请求,而页面其他部分内容则为动态内容,实现方式:
1、控件缓存:
将需要缓存的信息包含在一个可缓存的用户控件内,这样就允许缓存页面中的特定内容,但是每次都需要重新创建整个页