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

简单介绍:一般一个网站的首页访问量是最大的,如果您的网站的首页打开的非常缓慢,您的客户将会陆续离开你的网站.通常我们把需要经过复杂运算或者查询数据库得出的数据缓存起来或者生成静态网页来提高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 
%> 

时间: 2024-09-25 03:12:31

asp提高首页性能的一个技巧_ASP CLASS类的相关文章

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

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

asp.net c#封装的一个xml文件读取类

A:在XML文件中有多个集,每个集里面包含多个节点. B:可根据集的名字的取出这个集合下面的所有节点值 C:可一次性取出所有的节点值 D:其中有一个是无限拓展的就是:表达式 E:把集合读取到一个模型(实体类)当中 getmxl.cs文件  代码如下 复制代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace XmlOpe

提高PHP性能的编码技巧以及性能优化详细解析_php技巧

0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这 么做,它是 一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:

PHP 提高PHP性能的编码技巧以及性能优化

0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这 么做,它是 一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:

Win7系统如何提高显卡性能以及设置技巧

  1.点击开始菜单,选择控制面板--Inter GMA Driver; 2.选择"显示"项,在"一般设置"中对屏幕分辨率进行设置; 3.选择"3D"项,可根据选择显卡的性能特征,还可设置显卡的重点优化部分; 4.选择"媒体"项,勾选"覆盖应用程序设置",可设置屏幕的亮度.对比度.色调.饱和度; 5.选择"电源"选项,可以通过更改"电源计划"选择适合自己的最优方案.

ASP程序编写完整的一个IP所在地搜索类

程序  修正了查询方法,查询的方法和追捕的一致:只是追捕会自动更正IP.   还有个函数的书写错误,也已经修正:   包括增加了一个IP地址正确性的验证函数.(只是从格式上判断)   <%   '作者:萧寒雪(S.F.)   'QQ号:410000   Server.ScriptTimeout = &HE10 '&H3C   Response.Buffer = ("S.F." = "S.F.")   Dim IpSearch   '建立对象  

推荐下天枫常用ASP函数封装,推荐大家使用_ASP CLASS类

复制代码 代码如下: <% '------------------------------------- '天枫ASP class v1.0,集常用asp函数于一体 '天枫版权所有http://www.52515.net 'QQ:76994859 EMAIL:Chenshaobo@gmail.com '所有功能函数名如下: ' StrLength(str) 取得字符串长度 ' CutStr(str,strlen) 字符串长度切割 ' CheckIsEmpty(tstr) 检测是否为空 ' isI

提高EJB性能的技巧

项目进行到这里,开始出现新的问题.EJB调用是耗时.费力的.怎么提高EJB的性能?我们为解决这一问题,开始边写边讨论.等到完成了,我才发现,我们所应用的技巧总结一下,竟有十条.把提高EJB性能的这些技巧总结一下,为以后的项目做参考. 1.用一个Session Bean封装多个Entity Bean,将原来的多个Entity Bean的Remote调用和Local调用封装在一个Session Bean中.所以建立一个ServerFacade,它为多个对象提供统一获取EJB Home和获取对象的接口

改进性能和样式的24个ASP 技巧_ASP基础

简介 技巧 1:在 Web 服务器上缓存常用数据 技巧 2:在 Application 或 Session 对象中缓存常用数据 技巧 3:在 Web 服务器磁盘上缓存数据和 HTML 技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件 技巧 5:不要在 Application 或 Session 对象中缓存数据库连接 技巧 6:妙用 Session 对象 技巧 7:在 COM 对象中封装代码 技巧 8:晚点获取资源,早点释放资源 技巧 9:进程外的执行将牺牲可靠性