aspnet如何使用缓存,ASPNET输出页面缓存方法
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了大新免费建站欢迎大家使用!
1,ASPNET输出页面缓存方法
ASPX页面前面加上<%@ OutputCache Duration="100" VaryByParam="none"%>
这个是使用缓存的方法之一。
http://hi.baidu.com/bangbangnt/blog/item/4010f62ca1dedc3d359bf72d.html
你可以看看这篇文章。2,ASPNET数据库缓存如何实现
有很多种方式,根据你网站的对缓存的技术架构而定1. 如果不需要分布式缓存,可以直接使用asp.net提供的缓存,这个缓存最大的优点:提供了移除通知,与移除回掉2. 分布式缓存:这个就多了,以前比较流行memeorycache,但是它的数据结构太单一,只支持键值对。现在比较流行nosql(品种多,数据结构丰富)你连接数据库只要在webconfig文件中加连接字符串就可以了.3,aspnet把数据放到缓存
首先,把从文件里读出来的数据放到缓存里,然后从缓存里读取这些数据,用下面两个函数。实际可以这么做,每次需要违禁词的时候,都尝试从缓存里读取,如果读取的是NULL,从硬盘里读取后放到缓存,然后使用;如果不是NULL,直接使用.设置缓存public static void SetCache(string CacheKey, object objObject) System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject);}读取缓存public static object GetCache(string CacheKey) System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey];}只需要在控件顶部加入缓存指令即可。我举个例子: <%@ control language="c#" autoeventwireup="true" codefile="webusercontrol1.ascx.cs" inherits="webusercontrol1" %><%@ outputcache duration="3" varybyparam="*" %>4,如何利用缓存提高ASPNET网站速度
要实现页面输出缓存,只要将一条OutputCache指令添加到页面即可。<%@ OutputCache Duration="60" VaryByParam="*" %>如同其他页面指令一样,该指令应该出现在ASPX页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。 每个页面都写上这句话有些啰嗦,可以在web.config里配置如下: 复制代码代码如下:varyByParam="none" /> 在页面中引用代码如下: <%@ OutputCache CacheProfile="Cache30Seconds"%> Duration 必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。Location 指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server或ServerAndClient。VaryByParam 必需属性。Request中变量的名称,这些变量名应该产生单独的缓存条目。“none”表示没有变动。“*”可用于为每个不同的变量数组创建新的缓存条目。变量之间用“;”进行分隔。VaryByHeader 基于指定的标头中的变动改变缓存条目。VaryByCustom 允许在global.asax中指定自定义变动(例如,“Browser”)。利用必需的Duration和VaryByParam选项的组合可以处理大多数情况。例如,如果您的产品目录允许用户基于categoryID和页变量查看目录页,您可以用参数值为“categoryID;page”的VaryByParam将产品目录缓存一段时间(如果产品不是随时都在改变,一小时还是可以接受的,因此,持续时间是3600秒)。这将为每个种类的每个目录页创建单独的缓存条目。每个条目从其第一个请求算起将维持一个小时。VaryByHeader和VaryByCustom主要用于根据访问页面的客户端对页面的外观或内容进行自定义。同一个URL可能需要同时为浏览器和移动电话客户端呈现输出,因此,需要针对不同的客户端缓存不同的内容版本。或者,页面有可能已经针对IE进行了优化,针对Netscape或Opera则应取消这种优化功能。后一个例子非常普遍,我们将提供一个说明如何实现此目标的示例:示例:VaryByCustom用于支持浏览器自定义为了使每个浏览器都具有单独的缓存条目,VaryByCustom的值可以设置为“browser”。此功能已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本。<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser"%>片段缓存,用户控件输出缓存只需要在控件顶部加入缓存指令即可。我举个例子: <%@ control language="c#" autoeventwireup="true" codefile="webusercontrol1.ascx.cs" inherits="webusercontrol1" %><%@ outputcache duration="3" varybyparam="*" %>
5,关于ASPNET中的缓存问题的几种方式
1以编程方式操作 HttpCachePolicy 类。HttpCachePolicy.SetExpiresHttpCachePolicy.SetCacheability |NoCache|Private|Public|Server|ServerAndNoCache|ServerAndPrivate2Duration 和 VaryByParam 属性是必需的。2)缓存 ASP.NET 页的某些部分不变的部分缓存起来,不必总是请求服务器控件头部,则该控件的一个版本将在输出缓存中存储 120 秒。或使用代码隐藏开发方法开发用户控件,则将以下属性包含在类声明的元数据中时,控件版本将在输出缓存中存储 120 秒。[C#][PartialCaching(120)]以上两法将仅缓存用户控件。也可嵌套使用,在已缓存的页面或控件中缓存控件。!!可能的错误:如果编写代码来操作一个包含 @ OutputCache 指令的用户控件,则将出现错误。另外,如果页输出缓存设置为 100 秒,而用户控件输出缓存设置为 50 秒,则整个页将在输出缓存中存储 100 秒,而与用户控件较短的时间设置无关。不过,如果页输出缓存存储持续时间比用户控件存储持续时间短,则将一直使用缓存用户输出控件,直到其存储时间到期为止,即使该页的其余部分已为某个请求重新生成。例如,如果页输出缓存设置为 50 秒,而用户控件输出缓存设置为 100 秒,则页的其余部分每到期两次,用户控件就到期一次。3)缓存应用程序数据允许您将需要大量的服务器资源来创建的对象存储在内存中。它是由 Cache 类实现的,实例是每个应用程序专用的,其生存期依赖于该应用程序的生存期。重新启动应用程序后,将重新创建 Cache 对象。1 应用程序实现的动态页面缓存应用程序把动态文件生成的html文件缓存到文件服务器,以后用户请求动态文件,直接从文件服务器加载对应的静态缓存的html文件返回给用户,这里面主要节省了动态语言的执行时间和数据库访问时间。但是会增加了缓存框架的加载和缓存查找的时间。2 把解释执行的开发语言编译成为目标代码这个主要把解释执行的高级语言,例如java,php直接编译成为平台相关的目标代码,汇编代码。在java里面,比较著名的就是即时编译器(jit),其他的语言也要类似的机制。这里面主要节省了就是解释执行代码的时间。这个会增加即时编译的时间。3 利用反向代理服务器的缓存利用类似nginx的反向代理服务器,对请求的url对应的输出的进行缓存。这个缓存和应用程序实现的动态页面缓存类似,只不过用反向代理充当了应用程序的缓存实现。主要节省了动态余元执行时间和数据库访问时间。4 客户端浏览器缓存客户端浏览器缓存主要是通过在http头部增加last-modified,if-modified-since,expires,cache-control等标识,和服务器进行协商,是否是采用客户的本机缓存来实现。其中这里面也会分为三种方式1 通过last-modified,if-modified-since方式和服务器通信,客户发出http请求中包含if-modified-since,如果服务器端代码没有修改,服务器端返回302响应代码的请求响应头(内容不返回)客户端则直接用本机缓存的内容缓存显示结果。相当于节省了服务器执行代码时间以及数据传输时间。2 通过expires,cache-control控制,客户端发现如果上次请求的页面还未过期,通过expires或者cache-control进行辨别,则直接显示本机缓存的内容,不与服务器进行通信。总结一下:1 一般的高并发的应用程序,都在web层采用了以上几种缓存,一般静态资源(图片,js,css)都会采用nginx反向代理+客户端缓存来实现。 2 对于门户网站,尤其是首页的新闻,一般都会缓存起来,可以通过反向代理也可以通过应用程序缓存实现方式 3 对于下载或者视频网站,由于数据传输比较大,直接采用浏览器本地缓存实现。
本文题目:aspnet如何使用缓存,ASPNET输出页面缓存方法
本文地址:
http://hbruida.cn/article/ioidsj.html