這一種方法適合,訪問相對集中在同樣內容頁面的網站,會自動生成緩存文件(相當于讀取靜態頁面,但會增大文件)。如果訪問不集中會造成服務器同時讀取文件當機。
注意:系統需要FSO權限、XMLHTTP權限
系統包括兩個文件,其實可以合并為一個。之所以分為兩個是因為部分殺毒軟件會因為里邊含有FSO、XMLHTTP操作而被認為是腳本木馬。
調用時,需要在ASP頁面的最上邊包含主文件,然后在下邊寫下以下代碼
<% Set MyCatch=new CatchFile MyCatch.Overdue=60*5 '修改過期時間設置為5個小時 if MyCatch.CatchNow(Rev) then response.write MyCatch.CatchData response.end end if set MyCatch=nothing %>
復制代碼 代碼如下:
主包含文件:FileCatch.asp
<!--#include file="FileCatch-Inc.asp"-->
<%
'---- 本文件用于簽入原始文件,實現對頁面的文件Catch
'---- 1、如果文件請求為POST方式,則取消此功能
'---- 2、文件的請求不能包含系統的識別關鍵字
'---- 3、作者 何直群 (www.wozhai.com)
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文件保存目錄
新聞熱點
疑難解答