加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp上升首页性能的技巧

发布时间:2023-08-12 14:46:19 所属栏目:Asp教程 来源:
导读:网站是首页访问量是最大的,但是如果在打开首页的时候速度非常缓慢,那么就会影响用户们的浏览欲望,那么我们要如何提高网站的首页性能呢?那么我们现在就去看看asp提高首页性能的技巧。

通常我们把需要经过复杂
网站是首页访问量是最大的,但是如果在打开首页的时候速度非常缓慢,那么就会影响用户们的浏览欲望,那么我们要如何提高网站的首页性能呢?那么我们现在就去看看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
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章