asp提高首页性能的技巧

2019-09-30 06:45:19来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

网站是首页访问量是最大的,但是如果在打开首页的时候速度非常缓慢,那么就会影响用户们的浏览欲望,那么我们要如何提高网站的首页性能呢?那么我们现在就去看看asp提高首页性能的技巧。

通常我们把需要经过复杂运算或者查询数据库得出的数据缓存起来或者生成静态网页来提高web应用的性能,这次我们直接把首页的输出缓存成一个字符串,然后定时更新,即照顾了性能,又不影响首页的时效性.这里用到了一些VBS自定义类,Application对象,XmlHttp对象,adodb.stream对象的一些东西。
最好让这个页和你要缓存的页在一个目录下,要不有些相对路径的图片就无法显示了,另外缓存有的页面会出现乱码,我还不知道怎么解决这个问题呢,可能在Response的时候需要设置一下编码类型,大家可以试试
?

复制代码 代码如下:

<%?
Dim?wawa,StarTime,EndTime?
StarTime=Timer()?
Set?wawa=new?Cls_Cache?
wawa.Reloadtime=0.5?
wawa.CacheName="wawa"?
wawa.Name="XmlInfoIndex"?
If?wawa.ObjIsEmpty()?Then?CacheXmlInfoIndex()?
Response.Write?wawa.value?
EndTime=Timer()?
Response.Write?"<br>执行时间:"?&?FormatNumber((Endtime-StarTime)*1000,5)?&?"毫秒。"?

Sub?CacheXmlInfoIndex()?
?Dim?BodyText,?xml?
?Set?xml?=?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?
Set?xml?=?Nothing?
End?Sub?
Function?BytesToBstr(body,Cset)?
????????dim?objstream?
????????set?objstream?=?Server.CreateObject("adodb.stream")?
????????objstream.Type?=?1?
????????objstream.Mode?=3?
????????objstream.Open?
????????objstream.Write?body?
????????objstream.Position?=?0?
????????objstream.Type?=?2?
????????objstream.Charset?=?Cset?
????????BytesToBstr?=?objstream.ReadText??
????????objstream.Close?
????????set?objstream?=?nothing?
End?Function?
%>?
<%?
'下面这个类可以保存在单独的文件里,然后包含到此页?
Class?Cls_Cache?
?Rem?==================使用说明==============================================?
?Rem?=?本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。=?
?Rem?=?作用:缓存和缓存管理类??????????????????????????????????????????????????????????????????????????????????=?
?Rem?=?公有变量:Reloadtime?过期时间(单位为分钟)缺省值为14400,???????????????????????????????????????????????=?
?Rem?=?MaxCount?缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300??????????????????????????????????=?
?Rem?=?CacheName?缓存组的总名称,缺省值为"Dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。????????=?
?Rem?=?属性:Name?定义缓存对象名称,只写属性。??????????????????????????????????????????????????????????????????=?
?Rem?=?属性:value?读取和写入缓存数据。?????????????????????????????????????????????????????????????????????????=??
?Rem?=?函数:ObjIsEmpty()判断当前缓存是否过期。????????????????????????????????????????????????????????????????=?
?Rem?=?方法:DelCahe(MyCaheName)手工删除一个缓存对象,参数是缓存对象的名称。???????????????????????????????????=?
?Rem?================================================================?
?Public?Reloadtime,MaxCount,CacheName?
?Private?LocalCacheName,CacheData,DelCount?
?Private?Sub?Class_Initialize()?
??Reloadtime=14400?
??CacheName="Dvbbs"?
?End?Sub?
?Private?Sub?SetCache(SetName,NewValue)?
??Application.Lock?
??Application(SetName)?=?NewValue?
??Application.unLock?
?End?Sub??
?Private?Sub?makeEmpty(SetName)?
??Application.Lock?
??Application(SetName)?=?Empty?
??Application.unLock?
?End?Sub??
?Public??Property?Let?Name(ByVal?vNewValue)?
??LocalCacheName=LCase(vNewValue)?
?End?Property?
?Public??Property?Let?Value(ByVal?vNewValue)?
??If?LocalCacheName<>""?Then??
???CacheData=Application(CacheName&"_"&LocalCacheName)?
???If?IsArray(CacheData)??Then?
????CacheData(0)=vNewValue?
????CacheData(1)=Now()?
???Else?
????ReDim?CacheData(2)?
????CacheData(0)=vNewValue?
????CacheData(1)=Now()?
???End?If?
???SetCache?CacheName&"_"&LocalCacheName,CacheData?
??Else?
???Err.Raise?vbObjectError?+?1,?"DvbbsCacheServer",?"?please?change?the?CacheName."?
??End?If???
?End?Property?
?Public?Property?Get?Value()?
??If?LocalCacheName<>""?Then??
???CacheData=Application(CacheName&"_"&LocalCacheName)??
???If?IsArray(CacheData)?Then?
????Value=CacheData(0)?
???Else?
????Err.Raise?vbObjectError?+?1,?"DvbbsCacheServer",?"?The?CacheData?Is?Empty."?
???End?If?
??Else?
???Err.Raise?vbObjectError?+?1,?"DvbbsCacheServer",?"?please?change?the?CacheName."?
??End?If?
?End?Property?
?Public?Function?ObjIsEmpty()?
??ObjIsEmpty=True?
??CacheData=Application(CacheName&"_"&LocalCacheName)?
??If?Not?IsArray(CacheData)?Then?Exit?Function?
??If?Not?IsDate(CacheData(1))?Then?Exit?Function?
??If?DateDiff("s",CDate(CacheData(1)),Now())?<?60*Reloadtime??Then?
???ObjIsEmpty=False?
??End?If?
?End?Function?
?Public?Sub?DelCahe(MyCaheName)?
??makeEmpty(CacheName&"_"&MyCaheName)?
?End?Sub?
End?Class?
%>?

以上就是关于asp提高首页性能的技巧,看完本文后大家都学会了么?如果想了解相关知识大家可以在爱站技术频道查资料了解。?


原文链接:https://js.aizhan.com/develop/asp/9196.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:asp批量录入数据的实现方法

下一篇:ASP如何操作cookies