文件大小:
软件介绍
在浏览器可设置浏览器如何使用缓存的。一般默认是自动。操作步骤如下:
工具-》internet选项-》常规-》设置-》检查网页的较新版本中有四个选项来控制缓存的运用
当然代码可控制客户端缓存,比如比想要浏览器缓存东西可用下面代码
html禁用客户端缓存
以下为引用的内容: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1978 08:21:57 GMT"> |
C#中禁止cache的方法!
以下为引用的内容: Response.Buffer = true; Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1); Response.Expires=0; Response.CacheControl="no-cache"; |
我对客户端缓存知道太少,而且我们写程序也很少写客户端缓存, 希望有人提供更多关于客户端缓存的东西。
服务端缓存有System.Web.Caching.cahe和memcached
当然System.Web.Caching.cahe是微软写的类,而memcached是第三方插件。System.Web.Caching.cache目前还不是分布式缓存,只能在一台电脑上(07时候),而
memcached是分布式的高速缓存。
服务器缓存可分为三种缓存
1.输出缓存:
要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可。
<%@ OutputCache Duration="60" VaryByParam="*" %>
如同其他页面指令一样,该指令应该出现在 ASPX 页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。
Duration
必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。
Location
指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或 ServerAndClient。
VaryByParam
必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。“none” 表示没有变动。“*” 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 “;” 进行分隔。
VaryByHeader
基于指定的标头中的变动改变缓存条目。
VaryByCustom
允许在 global.asax 中指定自定义变动(例如,“Browser”)。
2.片段缓存:
示例
<%@ OutputCache Duration="60" VaryByParam="*" %> 该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。<%@ OutputCache Duration="60" VaryByParam="none"
VaryByControl="CategoryDropDownList" %> 该示例将缓存用户控件60秒,并且将针对CategoryDropDownList控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"
Shared="true" %>
最后,该示例将缓存用户控件60秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的ID引用该控件即可)。
3.编程用得最多的缓存:数据缓存
System.Web.Caching.cahe被httpRuntime.Cache或HttpContext.Current.Cache实例化。httpRuntime.Cache,HttpContext.Current.Cache是内置对象就想当与seesion。
HttpContext.Current.Cache与HttpRuntime.Cache区别:
HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象。 HttpRuntime.Cache:获取当前应用程序的Cache。HttpContext.Current.Cache是调用了 HttpRuntime.Cache,且HttpContext.Current.Cache是用在web程序上,而HttpRuntime.Cache是用在任何程序上。System.web命名空间下。
其实HttpContext.Current.Cache是通过 HttpRuntime.Cache来实现的,所以一般实例化最好通过HttpRuntime.Cache来实例化:
例如:System.Web.Caching.Cache cache = HttpRuntime.Cache
System.Web.Caching.Cache有很多方法,但方法中add中是存缓存
参数中有缓存时间,依赖项。
缓存时间即到当缓存的东西达到指定时间就让缓存失效,而依赖项是当依赖项发生变化就会使缓存失效。
依赖项有一般依赖项 CacheDependency和数据库依赖项SqlCacheDependency。
虽然CacheDependency类完成了很重要的功能,但其组成结构却比较简单,主要有两个属性和一个方法。
— 属性“HasChanged”:判断CacheDependency对象是否已更改。
— 属性“UtcLastModified”:返回上次依赖项的修改日期
— 方法“Dispose”:释放CacheDependency对象所占有的资源。因为缓存类继承了接口“IDispose”,所以必须实现此方法。
CacheDependency
例如 Cache.Insert(“key”, myXMLFileData, DateTime.Now.AddMinutes(1),,new
System.Web.Caching.CacheDependency(Server.MapPath(“users.xml”)));
users.xml文件就相当一般依赖项,当xml文件被改了,则此缓存失效。
SqlCacheDependency一般是增对数据库的,这个设置需要在config里设置,而且还要启动数据库的这样服务。
Cache.Insert 中可设置跟数据库中那个表关联,一旦表有变化就会导致cache失效。
可到网上查询如何使用
版权声明:
1 本站所有资源(含游戏)均是软件作者、开发商投稿,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!
2 本站将不对任何资源负法律责任,所有资源请在下载后24小时内删除。
3 若有关在线投稿、无法下载等问题,请与本站客服人员联系。
4 如侵犯了您的版权、商标等,请立刻联系我们并具体说明情况后,本站将尽快处理删除,联系QQ:2499894784
点击加载更多评论>>