一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - asp偽靜態情況下實現的utf-8文件緩存實現代碼

asp偽靜態情況下實現的utf-8文件緩存實現代碼

2019-08-30 09:11asp之家 ASP教程

該程序通過使用ASP的FSO功能,減少數據庫的讀取。經測試,可以減少90%的服務器負荷。頁面訪問速度基本與靜態頁面相當。

代碼如下:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% Response.CodePage=65001%> 
<% Response.Charset="UTF-8" %> 
<% 
'該程序通過使用ASP的FSO功能,減少數據庫的讀取。經測試,可以減少90%的服務器負荷。頁面訪問速度基本與靜態頁面相當。 
'使用方法:將該文件放在網站里,然后在需要引用的文件的“第一行”用include引用即可。 
'=======================參數區============================= 
DirName="cachenew\" '靜態文件保存的目錄,結尾應帶"\"。無須手動建立,程序會自動建立。 
TimeDelay=30 '更新的時間間隔,單位為分鐘,如1440分鐘為1天。生成的靜態文件在該間隔之后會被刪除。 
'======================主程序區============================ 
foxrax=Request("foxrax") 
if foxrax="" then 
FileName=GetStr()&".txt" 
FileName=DirName&FileName 
if tesfold(DirName)=false then'如果不存在文件夾則創建 
createfold(Server.MapPath(".")&"\"&DirName) 
end if 
if ReportFileStatus(Server.MapPath(".")&"\"&FileName)=true then'如果存在生成的靜態文件,則直接讀取文件 
Set FSO=CreateObject("Scripting.FileSystemObject") 
Dim Files,LatCatch 
Set Files=FSO.GetFile(Server.MapPath(FileName)) '定義CatchFile文件對象 
LastCatch=CDate(Files.DateLastModified) 
If DateDiff("n",LastCatch,Now())>TimeDelay Then'超過 
List=getHTTPPage(GetUrl()) 
WriteFile(FileName) 
Else 
List=ReadFile(FileName) 
End If 
Set FSO = nothing 
Response.Write(List) 
Response.End() 
else 
List=getHTTPPage(GetUrl()) 
WriteFile(FileName) 
end if 

end if 

'========================函數區============================ 
'獲取當前頁面url 
Function GetStr() 
'On Error Resume Next 
Dim strTemps 
strTemps = strTemps & Request.ServerVariables("HTTP_X_REWRITE_URL") 
GetStr = Server.URLEncode(strTemps) 
End Function 
'獲取緩存頁面url 
Function GetUrl() 
On Error Resume Next 
Dim strTemp 
If LCase(Request.ServerVariables("HTTPS")) = "off" Then 
strTemp = "http://" 
Else 
strTemp = "https://" 
End If 
strTemp = strTemp & Request.ServerVariables("SERVER_NAME") 
If Request.ServerVariables("SERVER_PORT") <> 80 Then 
strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT") 
end if 
strTemp = strTemp & Request.ServerVariables("URL") 
If Trim(Request.QueryString) <> "" Then 
strTemp = strTemp & "?" & Trim(Request.QueryString) & "&foxrax=foxrax" 
else 
strTemp = strTemp & "?" & "foxrax=foxrax" 
end if 
GetUrl = strTemp 
End Function 

'抓取頁面 
Function getHTTPPage(url) 
Set Mail1 = Server.CreateObject("CDO.Message") 
Mail1.CreateMHTMLBody URL,31 
AA=Mail1.HTMLBody 
Set Mail1 = Nothing 
getHTTPPage=AA 
'Set Retrieval = Server.CreateObject("Microsoft.Xmlhttp") 
'Retrieval.Open "GET",url,false,"","" 
'Retrieval.Send 
'getHTTPPage = Retrieval.ResponseBody 
'Set Retrieval = Nothing 
End Function 
Sub WriteFile(filePath) 
dim stm 
set stm=Server.CreateObject("adodb.stream") 
stm.Type=2 'adTypeText,文本數據 
stm.Mode=3 'adModeReadWrite,讀取寫入,此參數用2則報錯 
stm.Charset="utf-8" 
stm.Open 
stm.WriteText list 
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite,文件存在則覆蓋 
stm.Flush 
stm.Close 
set stm=nothing 
End Sub 

Function ReadFile(filePath) 
dim stm 
set stm=Server.CreateObject("adodb.stream") 
stm.Type=1 'adTypeBinary,按二進制數據讀入 
stm.Mode=3 'adModeReadWrite ,這里只能用3用其他會出錯 
stm.Open 
stm.LoadFromFile Server.MapPath(filePath) 
stm.Position=0 '把指針移回起點 
stm.Type=2 '文本數據 
stm.Charset="utf-8" 
ReadFile = stm.ReadText 
stm.Close 
set stm=nothing 
End Function 
'檢測文件是否存在 
Function ReportFileStatus(FileName) 
set fso = server.createobject("scripting.filesystemobject") 
if fso.fileexists(FileName) = true then 
ReportFileStatus=true 
else 
ReportFileStatus=false 
end if 
set fso=nothing 
end function 
'檢測目錄是否存在 
function tesfold(foname) 
set fs=createobject("scripting.filesystemobject") 
filepathjm=server.mappath(foname) 
if fs.folderexists(filepathjm) then 
tesfold=True 
else 
tesfold= False 
end if 
set fs=nothing 
end function 
'建立目錄 
sub createfold(foname) 
set fs=createobject("scripting.filesystemobject") 
fs.createfolder(foname) 
set fs=nothing 
end sub 
'刪除文件 
function del_file(path) 'path,文件路徑包含文件名 
set objfso = server.createobject("scripting.FileSystemObject") 
'path=Server.MapPath(path) 
if objfso.FileExists(path) then '若存在則刪除 
objfso.DeleteFile(path) '刪除文件 
else 
'response.write "<script language='Javascript'>alert('文件不存在')</script>" 
end if 
set objfso = nothing 
end function 
%> 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧洲肥女大肥臀 | 日韩香蕉视频 | 黄 在线播放 | 国产精品2 | 精品久久伦理中文字幕 | 国产成人免费高清激情视频 | 天天综合亚洲 | 和肥岳在厨房激情 | 婷婷丁香视频 | 美女一线天 | 日本一区二区不卡久久入口 | 高中生放荡日记高h娜娜 | 四虎影视在线影院在线观看观看 | 99精品久久久久久 | 99久久香蕉国产线看观香 | 欧美区一区 | 女仆色永久免费网站 | 国产成人91高清精品免费 | 色婷婷在线播放 | 动漫人物差差差动漫人物免费观看 | 成人二区 | 国产精品理论片在线观看 | 变态np虐高h| 奇米7777第四色 | 欧美福利在线观看 | 91婷婷射| 99热影视| 免费看男女污污完整版 | 国产成人综合精品 | 亚洲a视频在线 | 小货SAO边洗澡边CAO你动漫 | 国产人va在线 | 女子监狱第二季在线观看免费完整版 | 三年片韩国在线 | 黑人巨大vs北条麻妃在线 | 亚洲黄色片免费看 | 国产精品夜色视频一级区 | 亚洲精品专区 | 天天快乐高清在线观看 | 激情小视频网站 | 日韩av线观看 |