仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 533|回复: 11
打印 上一主题 下一主题

[学习教程] ASP网站制作之Caching in ASP.NET

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:36:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般asp.netThemajority[ifnotall]ofthepagesinadynamicwebsitearedynamic.Thatis,pagesthatarecreatedonuserrequest.Asweallknow,dynamicwebpageshelptoprovidedynamiccontent,customizedfortheuserrequestingthepage[e.g.:theusershomepage].Dynamicpagesalsohelpprovidedynamiccontentfetchedfromachangingdatastorewithouttheneedfortheadministratortochangethepagecontenteverytimesomethingchangesinthedatastore[e.g.:Listingofbooksinapublisherswebsite].Thedisadvantageistheoverheadincreatingthepagesforeveryuserrequest.

Toovercomethis,somewebsiteshavepagecreationengineswhichcreateallpagesinonegoandsavethemasHTMLpageswhicharethenservedtotheusers.Butthiswillonlyhelpinscenarioswherethepagecontentisthesameforallrequests[user-independent]asinthesecondexampleabove.Thelistingofbooksisthesameirrespectiveoftheuserrequestingthepage.EvenifthereisprovisionforlistingbookscategorywisebyprovidingdifferentcategoryIDvaluesthroughthequerystring,thepageoutputforaparticularcategoryofbooksisthesameforallusers.

ASP.NETprovidessupportfor"caching"whichwillhelpussolvethisproblemtoagreatextend.Itcancache[storeinmemory]theoutputgeneratedbyapageandwillservethiscachedcontentforfuturerequests.Andthisisusefulonlyinthesecondscenariodescribedearlier,wherethepagecontentisthesameforallrequests[user-independent].Thecachingfeatureiscustomizableinvariouswaysandwewillseehowwecandothataswegothroughthisarticle.

Cachingapage
Inordertocacheapagesoutput,weneedtospecifyan@OutputCachedirectiveatthetopofthepage.Thesyntaxisasshownbelow:

<%@OutputCacheDuration=5VaryByParam="None"%>
Asyoucansee,therearetwoattributestothisdirective.Theyare:

Duration-Thetimeinsecondsofhowlongtheoutputshouldbecached.Afterthespecifieddurationhaselapsed,thecachedoutputwillberemovedandpagecontentgeneratedforthenextrequest.Thatoutputwillagainbecachedfor10secondsandtheprocessrepeats.
VaryByParam-Thisattributeiscompulsoryandspecifiesthequerystringparameterstovarythecache.
Intheabovesnippet,wehavespecifiedtheVaryByParamattributeasNonewhichmeansthepagecontenttobeservedisthesameregardlessoftheparameterspassedthroughthequerystring[seeExample1inthesampledownload].

Iftherearetworequeststothesamepagewithvaryingquerystringparameters,e.g.:.../PageCachingByParam.aspx?id=12and.../PageCachingByParam.aspx?id=15]andseparatepagecontentisgeneratedforeachofthem,thedirectiveshouldbe:

<%@OutputCacheDuration=5VaryByParam="id"%>
ThepagecontentforthetworequestswilleachbecachedforthetimespecifiedbytheDurationattribute[seeExample2inthesampledownload].

Tospecifymultipleparameters,usesemicolontoseparatetheparameternames.IfwespecifytheVaryByParamattributeas*,thecachedcontentisvariedforallparameterspassedthroughthequerystring.

Somepagesgeneratedifferentcontentfordifferentbrowsers.Insuchcases,thereisprovisiontovarythecachedoutputfordifferentbrowsers.The@OutputCachedirectivehastobemodifiedto:

<%@OutputCacheDuration=5VaryByParam="id"VaryByCustom="browser"%>
Thiswillvarythecachedoutputnotonlyforthebrowserbutalsoitsmajorversion.I.e.,IE5,IE6,Netscape4,Netscape6willallgetdifferentcachedversionsoftheoutput.

Cachingpagefragments
Sometimeswemightwanttocachejustportionsofapage.Forexample,wemighthaveaheaderforourpagewhichwillhavethesamecontentforallusers.Theremightbesometext/imageintheheaderwhichmightchangeeveryday.Inthatcase,wewillwanttocachethisheaderforadurationofaday.

Thesolutionistoputtheheadercontentsintoausercontrolandthenspecifythattheusercontrolcontentshouldbecached.Thistechniqueiscalledfragmentcaching.

Tospecifythatausercontrolshouldbecached,weusethe@OutputCachedirectivejustlikeweuseditforthepage.

<%@OutputCacheDuration=10VaryByParam="None"%>
Withtheabovedirective,theusercontrolcontentwillbecachedforthetimespecifiedbytheDurationattribute[10secs].Regardlessofthequerystringparametersandbrowsertypeand/orversion,thesamecachedoutputisserved.[SeeExample3inthedownloadforademonstration].

DataCaching
ASP.NETalsosupportscachingofdataasobject</p>asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-19 15:35:55 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-24 11:15:17 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
海妖 该用户已被删除
地板
发表于 2015-1-24 15:59:38 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
第二个灵魂 该用户已被删除
5#
发表于 2015-1-25 21:01:45 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
深爱那片海 该用户已被删除
6#
发表于 2015-1-30 22:45:17 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
山那边是海 该用户已被删除
7#
发表于 2015-2-2 18:27:54 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
谁可相欹 该用户已被删除
8#
发表于 2015-2-8 04:12:04 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
蒙在股里 该用户已被删除
9#
发表于 2015-2-24 04:04:56 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-7 10:49:37 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
不帅 该用户已被删除
11#
发表于 2015-3-15 00:54:23 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
柔情似水 该用户已被删除
12#
发表于 2015-3-21 15:23:34 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 11:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表