Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > asp技巧

asp提高首页性能的一个技巧

来源:中文源码网    浏览:217 次    日期:2024-04-25 08:50:11
【下载文档:  asp提高首页性能的一个技巧.txt 】


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 "
执行时间:" & 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 %>

相关内容