萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> asp從緩存讀數據實例

asp從緩存讀數據實例

 

從文件讀數據,要比直接從數據庫快,測試讀出6000條新聞,讀數據庫用了23579毫秒,讀文件只用了123毫秒,下例為使用文件緩存的代碼  
使用方法,在需要使用文件緩存的頁面加入下列代碼, 
<!--#include file="FileCatch.asp" --> 
<% 
Set MyCatch=new CatchFile 
MyCatch.Overdue=10     ’修改過期時間設置為10分鐘 
if MyCatch.CatchNow(Rev) then 
        response.write MyCatch.CatchData 
        response.end 
end if 
set MyCatch=nothing 

%> 
FileCatch.asp 
復制內容到剪貼板代碼: 
<% 
’ 本文件用於簽入原始文件,實現對頁面的文件Catch 
’ 1、如果文件請求為POST方式,則取消此功能 
’ 2、文件的請求不能包含系統的識別關鍵字 
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=30        ’默認30分鐘過期 
                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())<10 then 
                        CFolder=CFolder&"/0"&Month(Now()) 
                else 
                        CFolder=CFolder&Month(Now()) 
                end if 
                if Day(Now())<10 then 
                        CFolder=CFolder&"0"&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 bytes2BSTR(vIn)        ’轉換編碼的函數 
                dim StrReturn,ThisCharCode,i,NextCharCode 
                strReturn = "" 
                For i = 1 To LenB(vIn) 
                        ThisCharCode&n
copyright © 萬盛學電腦網 all rights reserved