知识大全 asp从缓存读数据实例

Posted 文件

篇首语:月与灯依在,不见去年人本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 asp从缓存读数据实例相关的知识,希望对你有一定的参考价值。

从文件读数据 要比直接从数据库快 测试读出 条新闻 读数据库用了 毫秒 读文件只用了 毫秒 下例为使用文件缓存的代码   使用方法 在需要使用文件缓存的页面加入下列代码   <! #include file="FileCatch asp"  >  <%  Set MyCatch=new CatchFile  MyCatch Overdue=      ’修改过期时间设置为 分钟  if MyCatch CatchNow(Rev) then          response write MyCatch CatchData          response end  end if  set MyCatch=nothing  %>  FileCatch asp  复制内容到剪贴板代码:  <%  ’ 本文件用于签入原始文件 实现对页面的文件Catch  ’  如果文件请求为POST方式 则取消此功能  ’  文件的请求不能包含系统的识别关键字  Class CatchFile          Public Overdue Mark CFolder CFile ’定义系统参数          Private ScriptName ScriptPath ServerHost ’定义服务器/页面参数变量          Public CatchData        ’输出的数据          Private Sub Class_Initialize        ’初始化函数                  ’获得服务器及脚本数据                  ScriptName=Request Servervariables("Script_Name") ’识别出当前脚本的虚拟地址                  ScriptPath=GetScriptPath(false)        ’识别出脚本的完整GET地址                  ServerHost=Request Servervariables("Server_Name") ’识别出当前服务器的地址                 ’初始化系统参数                  Overdue=         ’默认 分钟过期                  Mark="NoCatch"        ’无Catch请求参数为 NoCatch                  CFolder=GetCFolder        ’定义默认的Catch文件保存目录                  CFile=Server URLEncode(ScriptPath)&" txt"        ’将脚本路径转化为文件路径                  CatchData=""          end Sub          Private Function GetCFolder                  dim FSO CFolder                  Set FSO=CreateObject("Scripting FileSystemObject")        ’设置FSO对象                  CFolder=Server MapPath("/")&"/FileCatch/"                  if not FSO FolderExists(CFolder) then                          fso CreateFolder(CFolder)                  end if                  if Month(Now())<  then                          CFolder=CFolder&"/ "&Month(Now())                  else                          CFolder=CFolder&Month(Now())                  end if                  if Day(Now())<  then                          CFolder=CFolder&" "&Day(Now())
 else                          CFolder=CFolder&Day(Now())                  end if                  CFolder=CFolder&"/"                  if not FSO FolderExists(CFolder) then                          fso CreateFolder(CFolder)                  end if                  GetCFolder=CFolder                  set fso=nothing          End Function          Private Function bytes BSTR(vIn)        ’转换编码的函数                  dim StrReturn ThisCharCode i NextCharCode                  strReturn = ""                  For i =   To LenB(vIn)                          ThisCharCode = AscB(MidB(vIn i ))                          If ThisCharCode < &H  Then                                  strReturn = strReturn & Chr(ThisCharCode)                          Else                                  NextCharCode = AscB(MidB(vIn i+ ))                                  strReturn = strReturn & Chr(CLng(ThisCharCode) * &H  + CInt(NextCharCode))                                 i = i +                            End If                  Next                  bytes BSTR = strReturn          End Function          Public Function CatchNow(Rev)        ’用户指定开始处理Catch操作                  if UCase(request Servervariables("Request_Method"))="POST" then                  ’当是POST方法 不可使用文件Catch                          Rev="使用POST方法请求页面 不可以使用文件Catch功能"                          CatchNow=false                  else                          if request Querystring(Mark)<>"" then                          ’如果指定参数不为空 表示请求不可以使用Catch
 Rev="请求拒绝使用Catch功能"                                  CatchNow=false                          else                                  CatchNow=GetCatchData(Rev)                          end if                  end if          End Function          Private Function GetCatchData(Rev)        ’读取Catch数据                  Dim FSO IsBuildCatch                  Set FSO=CreateObject("Scripting FileSystemObject")        ’设置FSO对象 访问CatchFile                  If FSO FileExists(CFolder&CFile) Then                          Dim File LastCatch                          Set File=FSO GetFile(CFolder&CFile)        ’定义CatchFile文件对象                         LastCatch=CDate(File DateLastModified)                          if DateDiff("n" LastCatch Now())>Overdue then                          ’如果超过了Catch时间                                  IsBuildCatch=true                          else                                  IsBuildCatch=false                          end if                          Set File=Nothing                  else                          IsBuildCatch=true                  End if                  If IsBuildCatch then                          GetCatchData=// code //BuildCatch(Rev)        ’如果需要创建Catch 则创建Catch文件 同时设置Catch的数据                  else                          GetCatchData=// code //ReadCatch(Rev)        ’如果不需要创建Catch 则直接读取Catch数据                  End if                  Set FSO=nothing
 End Function          Private Function GetScriptPath(IsGet)        ’创建一个包含所有请求数据的地址                  dim Key Fir                  GetScriptPath=ScriptName                  Fir=true                  for Each key in Request QueryString                          If Fir then                                  GetScriptPath=GetScriptPath&"?"                                  Fir=false                          else                                  GetScriptPath=GetScriptPath&"&"                          end if                          GetScriptPath=GetScriptPath&Server URLEncode(Key)&"="&Server URLEncode(Request QueryString(Key))                 Next                  if IsGet then                          If Fir then                                  GetScriptPath=GetScriptPath&"?"                                  Fir=false                          else                                  GetScriptPath=GetScriptPath&"&"                          end if                          GetScriptPath=GetScriptPath&Server URLEncode(Mark)&"=yes"                  end if          End Function          ’创建Catch文件          Private Function BuildCatch(Rev)                  Dim HTTP Url OutCome                  Set HTTP=CreateObject("Microsoft XMLHTTP")  ’                On Error Resume Next  ’                response write ServerHost&GetScriptPath(true)                  HTTP Open "get" "//"&ServerHost&GetScriptPath(true) False                  HTTP Send                  if Err number=  then                          CatchData=// code //bytes BSTR(HTTP responseBody)
    BuildCatch=True                  else                          Rev="创建发生错误 "&Err Description                          BuildCatch=False                          Err clear                  end if                  Call WriteCatch                  set HTTP=nothing          End Function          Private Function ReadCatch(Rev)                  ReadCatch=IReadCatch(CFolder&CFile CatchData Rev)          End Function          Private Sub WriteCatch                  Dim FSO TSO                  Set FSO=CreateObject("Scripting FileSystemObject")        ’设置FSO对象 访问CatchFile                  set TSO=FSO CreateTextFile(CFolder&CFile true)                  TSO Write(CatchData)                  Set TSO=Nothing                  Set FSO=Nothing          End Sub  End Class  Function IReadCatch(File Data Rev)          Dim FSO TSO          Set FSO=CreateObject("Scripting FileSystemObject")        ’设置FSO对象 访问CatchFile  ’        on error resume next          set TSO=FSO OpenTextFile(File false)          Data=// code //TSO ReadAll          if Err number<>  then                  Rev="读取发生错误 "&Err Description                  ReadCatch=False                  Err clear          else                  IReadCatch=True          end if          Set TSO=Nothing          Set FSO=Nothing  End Function  %>
cha138/Article/program/net/201311/14138

相关参考

知识大全 ASP.NET缓存总结

ASP.NET缓存总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一缓存概念缓存的好处类型 

知识大全 ASP.NET缓存介绍

ASP.NET缓存介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    ASPNET缓存   

知识大全 ASP.NET缓存分析

ASP.NET缓存分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  说到ASPNET缓存那就是

知识大全 ASP.NET缓存简述

ASP.NET缓存简述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前对缓存的认识比较零碎最

知识大全 在asp.net 中实现维护数据缓存

在项目中我们经常会用到数据缓存也会在项目处理对缓存的维护但是有些时间我们需要人为的来维护这些缓存用下面的代码来实现   将缓存信息绑定到DataGrid上   privatevoidbindCache

知识大全 ASP.NET 输出缓存的移除

ASP.NET输出缓存的移除  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET输出缓存

知识大全 asp 函数与asp过程实例教程

  asp函数与asp过程提供了一种方法来创建重新编程代码可用模块和避免重写的代码每次您执行特定任务同一个块如果你没有任何职能/ASP页中的程序ASP页从上到下执行时ASP解析引擎只是处理从开始到结束

知识大全 ASP.NET缓存:方法分析和实践示例

ASP.NET缓存:方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经

知识大全 ASP.NET缓存方法分析和实践示例

ASP.NET缓存方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经常

知识大全 ASP.NET2.0缓存技术

新手基础教程:ASP.NET2.0缓存技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP