大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> ASP.NET的缓存技术

ASP.NET的缓存技术

时间: 2021-07-31 作者:daque

引见洪量的网站页面是沿用动静的办法,按照用户提交的各别乞求创造天生页面。正如咱们所知的,动静页面无助于于按照用户诉求来供给定制的动静实质。动静页面也利于获得在数据库中时时刻刻革新的材料。缺陷是为每个用户乞求天生同一页面减少了体例开支。为克复此题目,少许网站用页面天生引擎对一切页面天生html静态页面。但如许天生的页面临一切用户的乞求实质都是沟通。asp.net 供给了缓存本领无助于于咱们最大水平地处置这个题目。它能缓存输入的页面,生存在保存器傍边,缓存用户乞求的实质。缓存的特性不妨按照不办法来定制的。缓存一个页面为缓存一个页面输入的实质,咱们要在面面顶部指定一个 @outputcache 吩咐。语法如次所示:<%@ outputcache duration=5 varybyparam="none" %>如你所见,这条训令有两个属性。她们是:duration - 被缓存输入的实质灵验期是几何秒。在功夫胜过指定的灵验期后,过时的缓存实质会简略,并会鄙人次用户乞求中从新挪用页面天生缓存实质。再次的缓存实质过10秒后此进程又会反复。 varybyparam - 这个属性是必需的,而且指明查问字串参数各别使缓存爆发变革。在上头的代码片断中,咱们指定 varybyparam 属性是 “none” ,这表示着不管传播的查问字串参数怎样各别所归来的页面实质是沟通的。即使对同一页面包车型的士两次乞求含各别的查问字串参数,如:.../pagecachingbyparam.aspx?id=12 和.../pagecachingbyparam.aspx?id=15 ,这该当天生各别的页面实质,训令该当是:<%@ outputcache duration=10 varybyparam="id" %>对如许两种各别乞求的页面实质每一个城市被缓存 duration 属性指定的功夫长度。。为了指定多个参数的景象,要运用分号来分割参数称呼。即使咱们指定 varybyparam 属性为“*”,缓存实质会因传播的各别查问字串参数而各别。少许动静页面要按照各别的欣赏来天生各别的实质。在这种情景下就要规则缓存输入实质要因各别欣赏器而各别。@outputcache 吩咐要改为:<%@ outputcache duration=5 varybyparam="id" varybycustom="browser" %>这条训令不只让缓存输入实质因欣赏器各别而各别,并且也会因欣赏器本子各别而各别,如 ie5、ie 6、netscape 4、netscape 6 城市赢得各别输入的缓存本子。缓存限制页面偶尔咱们大概不过想缓存一个页面包车型的士第一小学局部。比方,咱们大概用如许的页面,对一切欣赏用户都有同样的实质,这个页面有一个题目。这个题目大概是某个文本/图象构成,而且每天数据都大概变换。在这种情景下,咱们就会只想缓存这个题目一天的灵验期。处置本领是把题目实质放入一个用户控件傍边,而后指定这个用户控件该当被缓存。这个本领被称为限制缓存(fragment caching)。为了指定该当被缓存的用户控件,咱们运用 @outputcache 训令,就象所有页面缓存的用法一律。<%@ outputcache duration=10 varybyparam="none" %>在上头的训令中,用户控件缓存灵验期是 duration 属性指定的功夫(10 秒)。不管查问字串和欣赏器典型/本子怎样,缓存输入的实质是沟通的。。数据缓存asp.net 也扶助动作东西典型数据的缓存。咱们不妨把东西保存在外存中,在咱们运用步调的各别动静页面中运用它们。运用 cache 类不妨实行这个特性。缓存的存在周期与运用步调的沟通。东西不妨以键值对(name value pairs)的情势积聚于缓存傍边。如次所示插入一个字串进缓存:cache["name"]="smitha";这个保存的字串值不妨象如许获得:if (cache["name"] != null) label1.text= cache["name"].tostring();为把东西插入缓存中,不妨运用 cache 类的 add 本领大概各别本子的 insert 本领。那些本领大概承诺咱们运用这个 cache 类供给的更宏大功效,底下是运用了 insert 本领的一个重载:cache.insert("name", strname, new cachedependency(server.mappath("name.txt"), datetime.now.addminutes(2), timespan.zero);头两个参数是是键名和被插入的东西。第三个参数是 cachedependency 典型,帮咱们对名为 name.txt 文献树立值的依附项。所以一旦这个文献爆发变换,在缓存中的这个值会被简略。咱们不妨指定 “null” 值来表白没有依附项。第四个参数指定了从缓存简略这个值的功夫。结果一个参数是缓存过时功夫可调的参数,它指领会从结果一次考察缓存功夫到它被简略的功夫间隙。当可用体例外存不多时,缓存机动从外存中简略运用少的名目。这个进程被称为净化(scavenging)。咱们不妨为增添进缓存中的名目指定优先级,再不某些名目能获得优先处置:cache.insert("name", strname, new cachedependency(server.mappath("name.txt"), datetime.now.addminutes(2), timespan.zero, cacheitempriority.high, null);列举典型 cacheitempriority 给分子树立各别的优先级。cacheitempriority.high 给名目调配了个高优先级,以使该名目缩小被缓存简略的大概性。重心即使你仍旧老的 asp 页面而且运用 response.expires 属性缓存页面输入,那么她们也不妨象 asp.net 扶助这个属性一律被保持。 cache 类的 insert 本领会用沟通键名的名目掩盖任何已生存名目。 cacheitempriority.notremovable 优先值不妨与 cache.insert 本领一启用于树立一个项手段优先级,再不这个名目不会在净化功夫从缓存中被简略结束语正文中,我尽大概对 asp.net 的缓存本领多个可选简单供给一个总的详细。为维持正文的简略简略没有供给精细的证明和证明。在一个起用缓存的含子控件嵌套作风中可用限制缓存。我还没有尝试怎样运用这一点,所以也就没有囊括这个本领的证明。同声 cache 类的 insert 本领也就没有在此计划了。我蓄意正文对读者群而言是一个接洽多姿多彩的 asp.net 寰球的一个杰出的发端。证明正文样例源码载入。源代码中供给了百般缓存本领范例。运用 index.htm 页面不妨看到一切例子的列表。汗青february 23, 2004 - first version

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.