笼罩是什么意思语解释例句-海词汉语-醒醒or
2023年3月31日发(作者:天津外国语大学怎么样)
中缓存的详解
页⾯输出缓存属性设置:
⽤@OutputCache指令设置页⾯输出缓存。@OutputCache指令在页或者页中包含的⽤户控件的头部
声明。
@OutputCache的常⽤属性如下:
1、CacheProfile此属性是为了调⽤webconfig⽂件中
如:webconfig中增加节点
那么在页头的设置为
<%@OutputCacheCacheProfile=\"webCache\"%>即可。
需要注意的是包含⽤户控件中的@OutputCache指令不⽀持此属性。
2、NoStore
此属性定义⼀个布尔值,⽤于决定是否阻⽌敏感信息的⼆级存储。需要注意的是包含⽤户控件中的
@OutputCache指令不⽀持此属性。将此属性设为true,等效于在请求期间执⾏代码”
tore()”
3、Duration
⽤于设置缓存的时间,单位是秒。
需要注意的是:该属性是必须的,否则将会引起分析器错误。
4、Shared
该属性为布尔值,⽤于确定⽤户控件的输出是否可以有多个页共享。默认值为false。
需要注意的是:包含在页中的@outputCache指令不⽀持此属性。
5、Location
⽤于指定输出缓存项的位置。其属性值是OutputCacheLocation枚举值,他们是Any、Client、
DownStream、None、Server和ServerAndClient.。默认值为:Any。
需要注意的是:包含⽤户控件中的@OutputCache指令不⽀持此属性。
6、SqlDependency
该属性标识⼀组数据库/表名称对的字符串值,页或控件的输出缓存依赖于这些名称对。
7、VaryByControl
该属性使⽤⼀个分号分隔的字符串列表来更改⽤户控件的输出缓存。该字符串为服务器控件的ID属性值。
除⾮已经包含了VaryByParam属性,否则在@OutputCache中此属性是必须的。
8、VaryByCustom
⽤于⾃定义输出缓存要求的任意⽂本。如果属性值设为Brower,缓存将随浏览器名称和主要版本信息的不
同⽽异。如果输⼊了⾃定义字符串,必须在⽂件中重写
yByCustomString⽅法。
主要是为控件设置缓存。
9、VaryByHeader
10、VaryByParam
此属性基于使⽤POST或者GET⽅式发送的名称/值对来改变缓存。该属性是必须的
⽰例如下:
在⼀个web窗体中加⼊ID=”lab”的标签,以记录当前时间。⼀个ID=”btn”的控件,⽤于发送url。
1、在webconfig中加⼊
2、页头引⼊<%@OutputCacheCacheProfile=\"webCache\"%>
3、加⼊两个函数:
publicvoidPage_Load(objectsender,EventArgse)
{
stringstr=ng();
=str;
}
publicvoidbtn_Click(objectsender,EventArgse)
{
Randomrnd=newRandom();
intn=(100);
stringstr=ng();
stringurl=\"?name=\"+str;
ct(url);
}
这样,在不单击按钮的情况之下,刷新页⾯的情况之下,lab控件的值每个⼗秒改变⼀次。但是,在单击
btn之下,lab控件的就跟着发⽣改变。
原因:btn改变了name的值,导致缓存失效。
页⾯输出缓存API
该⽅法的核⼼是调⽤chePolicy.该类主要包含⽤于设置缓存特定的HTTP标头的⽅法和
⽤于控制页⾯输出缓存的⽅法。
返回类HttpCachePolicy的实例。
页⾯部分缓存
实现页⾯部分缓存有两种机制:
1、将缓存部分放在⽤户控件之中。―――控件缓存
控件缓存的实质是对⽤户控件的缓存设置。有三种⽅法:⼀是⽤@OutputCache指令声明设置。⼆是在代码
隐藏⽂件中使⽤PrticalCachingAttribute类设置⽤户控件缓存。三是⽤ControlCachePolicy类以编程⽅
式指定⽤户控件缓存设置。
2、缓存后替换机制。该⽅法是现设置整个页⾯缓存,再将页⾯中⼀部分设置为不缓存。
A、利⽤@OutputCache指令以声明的⽅式设置⽤户控件缓存。有六个属性:
DurationSharedSqlDependencyVaryByControlVaryByCustomVaryByParam
注意:
当⽤户控件和放置⽤户控件的页⾯都设置了缓存之时:
以设置缓存过期时间长的为准.如:页⾯的缓存小窗幽记全文及译文 过期时间为100s,控件的缓存过期时间为50s,则控件的缓
存过期时间调整为100s。总之,以长时间为准。
B、在代码隐藏⽂件中使⽤PrticalCachingAttribute类设置⽤户控件缓存
ParticalCachingAttribute类有4个构造函数和6个属性。
[ParticalCaching(intduration)]
[ParticalCaching(intduration,stringvaryByParams,
stringvaryByContorl,stringvaryByCustom)]
[ParticalCaching(intduration,stringvaryByParams,
stringvaryByContorl,stringvaryByCustom,boolshared)]
[ParticalCaching(intduration,stringvaryByParams,
stringvaryByContorl,stringvaryByCustom,stringsqlDenpendency,boolshared)]
使⽤PrticalCachingAttribute类需要注意⼀下⼏点:
⼀是构造函数必需放在⽤户控件的声明头部,如
[PartialCaching(白居易最著名的十首深情诗句 10)]
publicpartialclasslab:ntrol
{
protectedvoidPage_Load(objectsender,EventArgse)
{
=ng();
}
}
这是⽤第⼀个构造函数来初始化PrticalCachingAttribute类对象,分析器将⽣成
ParticalCachingControl类的实例来包装该控件。
⼆是⽤户控件的加载是动态的,也就是说不能在声明之后直接使⽤。
⽣成ParticalCachingControl类的实例还有⼀个必要条件,必需通过ntrol⽅法
动态加载⽤户控件,并且将⽤户控件插⼊页⾯的控件层次中。如:
publicvoidPage_Init(objectsender,EventArgse)
{
Controlpca=ntrol(\"\");
(pca);}
或者直接在⽤户控件的⽂件中引⽤@OutputCache指令来实现ParticalCacheAttribute类的实例来包装⽤户
控件。然后动态加载⽤户控件
publicvoidPage_Init(objectsender,EventArgse)
{
Controlpca=ntrol(\"\");
(pca);}
总之,直接在⽤户控件的⽂件中引⽤@OutputCache指令或在⽤户控件的声明的头部使⽤
ParticalCacheAttribute的构造函数,效果是等效的。
C、三是⽤ControlCachePolicy类以编程⽅式指定⽤户控件缓存设置。
ControlCachePolicy类与上⾯的HttpCachePolicy类似,但是HttpCachePolicy⽤于页⾯输出缓存,⽽
ControlCachePolicy⽤于⽤户控件缓存。
创建ControlCachePolicy类实例⽅法:
必须访问ParticalCacheControl类的olicy属性
(BasePartialCachingControl是ParticalCacheControl)的基类。
⽽且还必须⽤LoadControl⽅法动态加载⽤户控件,这样才能获得ParticalCacheControl类包装的⽤户控
件。若要确定⽤户控件是否⽀持缓存,可检查SupportsCaching属性。
ControlCachePolicy实例仅在控件⽣命周期的Init和PreRender阶段之间,才能成功操作。因为在呈现控
件之后所进⾏的任何更改都⽆法影响缓存设置。
ControlCachePolicy的常⽤属性有;
CachedDependencyDurationSupportCachingVaryByControl和VaryByParam
3个常⽤⽅法:
PublicvoidSetExpires(DateTimeexpirationTime)
PublicvoidSetSlidingExpiration(booluseSlidingExpiration)
PublicvoixSetVaryByCustom(stringvaryByCustom)
⽰例:
⼀是在⽤户控件的声明头部调⽤PartialCacheAttribute类的构造函数.实现PartialCacheAttribute类对
⽤户控件的包装。
[PartialCaching(10)]
publicpartialclasslab:ntro人闲桂花落夜静春山空是什么意思 l
{
protectedvoidPage_Load(objectsender,EventArgse)
{
=ng();}}
⼆是
publicvoidPage_Init(objectsender,EventArgse)
{
PartialCachingControlpcc=LoadControl(\"\")asPartialCachingControl;
ControlCachePolicyccp=olicy;
if(on>=conds(10))
{
ires((conds(15)));
dingExpiration(false);
}
(pcc);
}
缓存后替换
实现机制是:将整个页⾯设置为页⾯输出缓存,对那些不缓存的部分使⽤缓存后替换功能。
实现⽅法:
1、以声明⽅式使⽤Substitution控件
2、以编程⽅式使⽤Substitution控件API
3、以隐式⽅式使⽤AdRotator控件
实例:
1、以声明⽅式使⽤Substitution控件
Substitution控件为替换控件。当页⾯(设置为页⾯输出功能)第⼀次执⾏时,Substitution控件也执⾏
,返回其显⽰的内容。当后续请求时,页⾯从缓存中读取。⽽Substitution控件每次都调⽤⾃⼰的回调函
数,实现内容的及时更新。
此控件的声明中有个MethodName属性,以调⽤回调函数
此函数必须为:
1、必须为static类型
2、返回值必须为string类型
3、参数必须为HttpContext类型
如:
publicstaticstringGetCurrentTime(HttpContexthc)
{
ng();
}
2以编程⽅式使⽤Substitution控件API
此⽅法主要是使⽤Response类的
PublicvoidWriteSubstitution(HttpRespons岳飞的满江红全文 eSubstitutionCallBackcallback)⽅法
HttpResponseSubstitutionCallBack是⼀个委托类型,为
PublicdelegatestringHttpResponseSubstitutionCallback(HttpContextcontext)
使⽤WriteSubstitution的⽅法的优点是可以调⽤任意对象的⽅法,⽽不是只能调⽤Page或者UserControl
对象的静态⽅法。
如在aspx页⾯中调⽤
<%ubstitution(newHttpResponseSubstitutionCallback(GetCurrentTime));%>⽅法。
3、以隐式⽅式使⽤AdRotator控件请参照AdRotator控件的详细⽤法
应⽤程序数据缓存
主要功能:应⽤程序数据缓存主要功能是在内存中存储那些与应⽤程序相关的对象,通常这些对象都需要
耗费⼤量的服务器资源才能得到。
主要实现⽅法:应⽤程序数据缓存主要有Cache类实现,该类位于g命名空间之中。
通常有三种⽅法:
1、使⽤键值对直接将对象加⼊的缓存Cache对象之中。
Cache[“MyCache”]=;
此⽅法的弊端是⽆法设置缓存有效期、依赖对象等。
2、使⽤Cache对象的Add⽅法。
PublicobjectAdd(Stringkey,objectvalue,CacheDependencydependency,DateTime
absoluteExpiration,TimeSpanslidingExpiration,CacheItemPriority
priority,CacheItemRemovedCallbackcallback)
要想使⽤此⽅法,必须彻底弄明⽩这⼏个参数的意思。
其中最后⼀项是个委托类项,其原型为:
publicdelegatevoidCacheItemRemovedCallback(
stringkey,
Objectvalue,
CacheItemRemovedReasonreason
)
当缓存对象被移除时,将调⽤此对应的处理函数。
注意:采⽤Add⽅独坐敬亭山图片 法时,注意不要加⼊相同键的缓存对象,否则出现异常
3、使⽤Insert⽅法。
Insert⽅法⽐较灵活,有4个重载函数。
名称
说明
(String,Object)
向Cache对象插⼊项,该项带有⼀个缓存键引⽤其位置,并使⽤CacheItemPriority枚举提供的默认
值。
(String,Object,CacheDependency)
向Cache中插⼊具有⽂件依赖项或键依赖项的对象。
(String,Object,CacheDependency,DateTime,TimeSpan)
向Cache中插⼊具有依赖项和过期策略的对象。
(String,Object,CacheDependency,DateTime,TimeSpan,CacheItemPriority,
CacheItemRemovedCallback)
向Cache对象中插⼊对象,后者具有依赖项、过期和优先级策略以及⼀个委托(可⽤于在从Cache移
除插⼊项时通知应⽤程序)。
注意:
当Insert⽅法加⼊具有相同键名的对象时,出现覆盖现象。不出现异常。这是Insert⽅法与Add⽅法的主
要区别。
缓存依赖
功能机制:将缓存对象与缓存依赖对象(如⽂件、⽬录、数据表)建⽴关联,当这些缓存依赖对象更改时
,移除缓存对象。下次请求时,重设缓存对象。这样,始终保持缓存对象存储的数据是最新的。
缓存依赖类关系图:
CacheDependency
AggregateCacheDependency
SqlCacheDependency
实现⽅法:通过CacheDependency类的9⼤构造函数,来构造缓存依赖,来监视跟踪对所指定的⽂件、⽬录
、或其他缓存依赖的更改。在通过Cache类的Insert或Add⽅法,设置缓存依赖与缓存对象之间的关系。
CacheDependency类有两个重要的属性。⼀是HasChanged属性,表⽰依赖对象是否更改。
⼆是UtcLastModified属性,⽤于获取依赖对象上次被更改的时间。
⽰例代码为(实现⾃定义依赖类对象):
stringfileName=h(\"\");
CacheDependencycd=newCacheDependency(fileName,);
(\"CityFile\",cityFile,cd);
实现聚合缓存依赖
聚合缓存依赖可以实现⼀个缓存对象与多个依赖对象建⽴关联。当每个依赖项发⽣更改时,就移除缓存对
象。
如:
CacheDependencydep1=newCacheDependency(fileName1);
SqlCacheDependencydep2=newSqlCacheDependency(cmd);
CacheDependency[]deps=newCacheDependency{dep1,dep2};
AggregateCacheDependencyaggDep=newAggregateCacheDependency();
(\"key\",date,deps);
Sql数据缓存依赖
功能核⼼:利⽤SqlCacheDependency类,在应⽤程序数据缓存对象与SQLserver数据库表,或者SQL2005查
询结果之间,建⽴缓存依赖关系。当数据更改时,⾃动移除缓存对象。当下次请求时,如果该缓存对象不
在,则再次向缓存中添加更新后的版本。
由于sql版本不同,所以sql对缓存依赖的⽀持也不同。
SQLserver7.0/2000
Sql2005
实现机制
使李白的行路难全诗 ⽤基于轮询的实现机制
使⽤通知传递服务
是否需要配置启⽤
需要配置,以便启⽤
不需要,内置⽀持,⾃动启⽤
数据更改检测
只限于数据表级的检测
可应⽤于数据表级、数据⾏级的更改检测
是否⽀持SqlCacheDependency
⽀持
⽀持
SqlCacheDependency有两给构造函数
PublicSqlCacheDependency(sqlcommandsql_cmd)
PublicSqlCacheDependency(stringdatebaseEntryName,stringtableName)
对于sql2005只能应⽤函数⼀:
注意(sqlcommand参数):
1、必须完全限定表名。如:ers
2、Select中的参数不能使⽤*,必须⼀⼀列出。
如selectname,address,city,ers
如果页⾯设置的页⾯输出缓存设置的与sql2005的数据缓存依赖有关,则,不能使⽤此构造函数。
3、不能在查询语句中使⽤聚合函数。
对于sql7.0/2000只能应⽤函数⼆:第⼀个参数必须与webconfig中
⼦配置节定义的数据库名称,这就意味着必须在webconfig中定义给该参数的数据库名称。如
name=\"PubsDB\"
connectionStringName=\"PubsString\"是调⽤connectionStrings字节中的连接字符串名字。
id=sa;password=guest;\">
///////////////////////////////////////////////////////
第⼆个参数⽤于设置关联的表名。
针对sql2000建⽴sql数据缓存依赖详细过程:
1、利⽤aspnet_(默认情况之下:位于”
C:meWork[“版本号”]”)⼯具从后台建⽴擂组词语 sql数据缓存依赖过程。其本质
是在后台使⽤SqlCach造化钟神秀什么意思 eDependencyAdmin类。
第⼀步:打开dos命令窗⼝,输⼊
aspnet_regsql–Slocalhoat–Usa–Pmypassword–dpubs–ed
Localhost为服务器名,sa为帐号,mypassword为密码,pubs为数据库名
这样,将会提⽰数据库创建缓存依赖成功。
第⼆步:输⼊
aspnet_regsql–Slocalhoat–Usa–Pmypassword–dpubs–ttitles-et
titles为表名。这样将会提⽰为数据库表创建缓存依赖成功。
以上两步创建成功之后,打开SQL2000,查看数据库中的数据表将会发现:新建了⼀个名为:
ASPNet_SqlCacheTablesForChangeNotification杉组词二年级 的数据表。
此表具有三个字段:
TableName⽤来设置缓存依赖的表。
NotificationCreated⽤于存储数据表被更新的时间。
ChangedID⽤来存储数据表被更改的次数。此时,如果数据表中的数据发⽣变化,changedID也将发⽣变
化。
2、在前台使⽤SqlCacheDependencyAdmin类来创建sql数据缓存依赖。
DisableNotifications
禁⽤指定数据库的SqlCacheDependency更改通知。
DisableTableForNotifications
已重载。禁⽤SQLServer数据库表或数据库表的数组的SqlCacheDependency更改通知。
EnableNotifications
启⽤指定数据库的SqlCacheDependency更改通知。
EnableTableForNotifications
已重载。连接到SQLServer数据库并为SqlCacheDependency更改通知准备⼀个或多个数据库表。
Equals
已重载。确定两个Object实例是否相等。(从Object继承。)
GetHashCode
⽤作特定类型的哈希函数。GetHashCode适合在哈希算法和数据结构(如哈希表)中使⽤。(从
Object继承。)
GetTablesEnabledForNotifications
检索⼀个字符串数组,该数组包含SQLServer数据库中为其启⽤了更改通知的每个表的名称。
在前台操纵SqlCacheDependencyAdmin类,通常是在⽂件中,实现对sql数据缓存依赖功能的
统⼀管理。如:
voidApplication_Start(objectsender,EventArgse)
{
//在应⽤程序启动时运⾏的代码
}
更多推荐
partical是什么意思tical在线翻译读音例
发布评论