知识大全 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 %>
- 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)
- 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
- 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
相关参考
ASP.NET缓存总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一缓存概念缓存的好处类型
ASP.NET缓存介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET缓存
ASP.NET缓存分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 说到ASPNET缓存那就是
ASP.NET缓存简述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以前对缓存的认识比较零碎最
在项目中我们经常会用到数据缓存也会在项目处理对缓存的维护但是有些时间我们需要人为的来维护这些缓存用下面的代码来实现 将缓存信息绑定到DataGrid上 privatevoidbindCache
ASP.NET输出缓存的移除 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET输出缓存
asp函数与asp过程提供了一种方法来创建重新编程代码可用模块和避免重写的代码每次您执行特定任务同一个块如果你没有任何职能/ASP页中的程序ASP页从上到下执行时ASP解析引擎只是处理从开始到结束
ASP.NET缓存:方法分析和实践示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 尽早缓存经
ASP.NET缓存方法分析和实践示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 尽早缓存经常
新手基础教程:ASP.NET2.0缓存技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP