Dieses Programm reduziert Datenbanklesevorgänge durch die Nutzung der FSO-Funktionalität von ASP. Nach dem Testen kann die Serverlast um 90 % reduziert werden. Die Seitenzugriffsgeschwindigkeit ist grundsätzlich dieselbe wie bei statischen Seiten. Kopieren Sie den Codecode wie folgt:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<% Response.CodePage=65001%>
<% Response.Charset=UTF-8 %>
<%
„Dieses Programm reduziert Datenbanklesevorgänge durch die Nutzung der FSO-Funktionalität von ASP.“ Nach dem Testen kann die Serverlast um 90 % reduziert werden. Die Seitenzugriffsgeschwindigkeit ist grundsätzlich dieselbe wie bei statischen Seiten.
„Verwendung: Platzieren Sie die Datei auf der Website und verwenden Sie dann include, um in der ersten Zeile der Datei, auf die verwiesen werden soll, darauf zu verweisen.
'======================Parameterbereich======================= =====
DirName=cachenew/ 'Das Verzeichnis, in dem statische Dateien gespeichert werden, sollte / am Ende haben. Sie müssen es nicht manuell erstellen, das Programm erstellt es automatisch.
TimeDelay=30 'Aktualisierungszeitintervall, Einheit ist Minuten, zum Beispiel sind 1440 Minuten 1 Tag. Generierte statische Dateien werden nach diesem Intervall gelöscht.
'======================Hauptprogrammbereich======================= ====
foxrax=Anfrage(foxrax)
wenn foxrax= dann
FileName=GetStr()&.txt
Dateiname=Verzeichnisname&Dateiname
if tesfold(DirName)=false then'Erstellen Sie den Ordner, falls er nicht existiert
createfold(Server.MapPath(.)&/&DirName)
Ende wenn
if ReportFileStatus(Server.MapPath(.)&/&FileName)=true then'Wenn eine generierte statische Datei vorhanden ist, lesen Sie die Datei direkt
Legen Sie FSO=CreateObject(Scripting.FileSystemObject) fest.
Dateien dimmen, LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'CatchFile-Dateiobjekt definieren
LastCatch=CDate(Files.DateLastModified)
Wenn DateDiff(n,LastCatch,Now())>TimeDelay Then' überschreitet
List=getHTTPPage(GetUrl())
WriteFile(Dateiname)
Anders
List=ReadFile(FileName)
Ende wenn
Setze FSO = nichts
Response.Write(Liste)
Response.End()
anders
List=getHTTPPage(GetUrl())
WriteFile(Dateiname)
Ende wenn
Ende wenn
'=======================Funktionsbereich====================== = =====
'Holen Sie sich die aktuelle Seiten-URL
Funktion GetStr()
„Bei Fehler Weiter fortsetzen.“
Dimmen Sie strTemps
strTemps = strTemps & Request.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Server.URLEncode(strTemps)
Funktion beenden
'Holen Sie sich die zwischengespeicherte Seiten-URL
Funktion GetUrl()
Bei Fehler Weiter fortsetzen
Dimmen Sie strTemp
Wenn LCase(Request.ServerVariables(HTTPS)) = off Dann
strTemp = http://
Anders
strTemp = https://
Ende wenn
strTemp = strTemp & Request.ServerVariables(SERVER_NAME)
Wenn Request.ServerVariables(SERVER_PORT) <> 80 Dann
strTemp = strTemp & : & Request.ServerVariables(SERVER_PORT)
Ende wenn
strTemp = strTemp & Request.ServerVariables(URL)
If Trim(Request.QueryString) <> Then
strTemp = strTemp & ? & Trim(Request.QueryString) & &foxrax=foxrax
anders
strTemp = strTemp & ? & foxrax=foxrax
Ende wenn
GetUrl = strTemp
Funktion beenden
„Fang die Seite
Funktion getHTTPPage(url)
Setze Mail1 = Server.CreateObject(CDO.Message)
Mail1.CreateMHTMLBody URL,31
AA=Mail1.HTMLBody
Setzen Sie Mail1 = Nichts
getHTTPage=AA
'Set Retrieval = Server.CreateObject(Microsoft.Xmlhttp)
'Retrieval.Open GET,url,false,,
'Abruf.Senden
'getHTTPPage = Retrieval.ResponseBody
'Abruf festlegen = Nichts
Funktion beenden
SubWriteFile(filePath)
dim stm
set stm=Server.CreateObject(adodb.stream)
stm.Type=2 'adTypeText, Textdaten
stm.Mode=3 'adModeReadWrite, lesen und schreiben, wenn dieser Parameter 2 ist, wird ein Fehler gemeldet
stm.Charset=utf-8
stm.Öffnen
stm.WriteText-Liste
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, überschreiben, wenn die Datei vorhanden ist
stm.Flush
stm.Schließen
setze stm=nichts
Sub beenden
Funktion ReadFile(filePath)
dim stm
set stm=Server.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary, Binärdaten einlesen
stm.Mode=3 'adModeReadWrite, hier können nur 3 verwendet werden, andere verursachen Fehler
stm.Öffnen
stm.LoadFromFile Server.MapPath(filePath)
stm.Position=0 'Bewegen Sie den Zeiger zurück zum Startpunkt
stm.Type=2 'Textdaten
stm.Charset=utf-8
ReadFile = stm.ReadText
stm.Schließen
setze stm=nichts
Funktion beenden
'Überprüfen Sie, ob die Datei existiert
Funktion ReportFileStatus(FileName)
set fso = server.createobject(scripting.filesystemobject)
Wenn fso.fileexists(FileName) = true, dann
ReportFileStatus=true
anders
ReportFileStatus=false
Ende wenn
setze fso=nichts
Endfunktion
'Überprüfen Sie, ob das Verzeichnis existiert
Funktion tesfold(fonename)
set fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(foname)
wenn fs.folderexists(filepathjm) dann
tesfold=Wahr
anders
tesfold=Falsch
Ende wenn
setze fs=nichts
Endfunktion
'Verzeichnis erstellen
subcreatefold(fonname)
set fs=createobject(scripting.filesystemobject)
fs.createfolder(foname)
setze fs=nichts
Ende sub
'Dateien löschen
function del_file(path) 'Pfad, der Dateipfad enthält den Dateinamen
set objfso = server.createobject(scripting.FileSystemObject)
'path=Server.MapPath(pfad)
if objfso.FileExists(path) then 'Wenn es existiert, löschen Sie es
objfso.DeleteFile(path) 'Datei löschen
anders
'response.write <script language='Javascript'>alert('Datei existiert nicht')</script>
Ende wenn
set objfso = nichts
Endfunktion
%>