asp提高首页性能的一个技巧_ASP教程-查字典教程网
asp提高首页性能的一个技巧
asp提高首页性能的一个技巧
发布时间:2016-12-29 来源:查字典编辑
摘要:简单介绍:一般一个网站的首页访问量是最大的,如果您的网站的首页打开的非常缓慢,您的客户将会陆续离开你的网站.通常我们把需要经过复杂运算或者查...

简单介绍:一般一个网站的首页访问量是最大的,如果您的网站的首页打开的非常缓慢,您的客户将会陆续离开你的网站.通常我们把需要经过复杂运算或者查询数据库得出的数据缓存起来或者生成静态网页来提高web应用的性能,这次我们直接把首页的输出缓存成一个字符串,然后定时更新,即照顾了性能,又不影响首页的时效性.这里用到了一些VBS自定义类,Application对象,XmlHttp对象,adodb.stream对象的一些东西,相关知识大家可以查资料了解.

最好让这个页和你要缓存的页在一个目录下,要不有些相对路径的图片就无法显示了,另外缓存有的页面会出现乱码,我还不知道怎么解决这个问题呢,可能在Response的时候需要设置一下编码类型,大家可以试试

复制代码 代码如下:

<%

Dimwawa,StarTime,EndTime

StarTime=Timer()

Setwawa=newCls_Cache

wawa.Reloadtime=0.5

wawa.CacheName="wawa"

wawa.Name="XmlInfoIndex"

Ifwawa.ObjIsEmpty()ThenCacheXmlInfoIndex()

Response.Writewawa.value

EndTime=Timer()

Response.Write"<br>执行时间:"&FormatNumber((Endtime-StarTime)*1000,5)&"毫秒。"

SubCacheXmlInfoIndex()

DimBodyText,xml

Setxml=Server.CreateObject("Microsoft.XMLHTTP")

'把下面的地址替换成你的首页的文件地址,一定要用http://开头的绝对路径,不能写相对路径

xml.Open"GET","http://onlytiancai/bak/vote/InfoIndex.asp",False

xml.Send

BodyText=xml.ResponseBody

BodyText=BytesToBstr(BodyText,"gb2312")

wawa.Value=BodyText

Setxml=Nothing

EndSub

FunctionBytesToBstr(body,Cset)

dimobjstream

setobjstream=Server.CreateObject("adodb.stream")

objstream.Type=1

objstream.Mode=3

objstream.Open

objstream.Writebody

objstream.Position=0

objstream.Type=2

objstream.Charset=Cset

BytesToBstr=objstream.ReadText

objstream.Close

setobjstream=nothing

EndFunction

%>

<%

'下面这个类可以保存在单独的文件里,然后包含到此页

ClassCls_Cache

Rem==================使用说明==============================================

Rem=本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。=

Rem=作用:缓存和缓存管理类=

Rem=公有变量:Reloadtime过期时间(单位为分钟)缺省值为14400,=

Rem=MaxCount缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300=

Rem=CacheName缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。=

Rem=属性:Name定义缓存对象名称,只写属性。=

Rem=属性:value读取和写入缓存数据。=

Rem=函数:ObjIsEmpty()判断当前缓存是否过期。=

Rem=方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。=

Rem================================================================

PublicReloadtime,MaxCount,CacheName

PrivateLocalCacheName,CacheData,DelCount

PrivateSubClass_Initialize()

Reloadtime=14400

CacheName="Dvbbs"

EndSub

PrivateSubSetCache(SetName,NewValue)

Application.Lock

Application(SetName)=NewValue

Application.unLock

EndSub

PrivateSubmakeEmpty(SetName)

Application.Lock

Application(SetName)=Empty

Application.unLock

EndSub

PublicPropertyLetName(ByValvNewValue)

LocalCacheName=LCase(vNewValue)

EndProperty

PublicPropertyLetValue(ByValvNewValue)

IfLocalCacheName<>""Then

CacheData=Application(CacheName&"_"&LocalCacheName)

IfIsArray(CacheData)Then

CacheData(0)=vNewValue

CacheData(1)=Now()

Else

ReDimCacheData(2)

CacheData(0)=vNewValue

CacheData(1)=Now()

EndIf

SetCacheCacheName&"_"&LocalCacheName,CacheData

Else

Err.RaisevbObjectError+1,"DvbbsCacheServer","pleasechangetheCacheName."

EndIf

EndProperty

PublicPropertyGetValue()

IfLocalCacheName<>""Then

CacheData=Application(CacheName&"_"&LocalCacheName)

IfIsArray(CacheData)Then

Value=CacheData(0)

Else

Err.RaisevbObjectError+1,"DvbbsCacheServer","TheCacheDataIsEmpty."

EndIf

Else

Err.RaisevbObjectError+1,"DvbbsCacheServer","pleasechangetheCacheName."

EndIf

EndProperty

PublicFunctionObjIsEmpty()

ObjIsEmpty=True

CacheData=Application(CacheName&"_"&LocalCacheName)

IfNotIsArray(CacheData)ThenExitFunction

IfNotIsDate(CacheData(1))ThenExitFunction

IfDateDiff("s",CDate(CacheData(1)),Now())<60*ReloadtimeThen

ObjIsEmpty=False

EndIf

EndFunction

PublicSubDelCahe(MyCaheName)

makeEmpty(CacheName&"_"&MyCaheName)

EndSub

EndClass

%>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ASP教程学习
    热门ASP教程学习
    编程开发子分类