Ce programme réduit les lectures de base de données en utilisant la fonctionnalité FSO d'ASP. Après test, il peut réduire la charge du serveur de 90 %. La vitesse d’accès aux pages est fondamentalement la même que celle des pages statiques. Copiez le code comme suit :
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<% Response.CodePage=65001%>
<% Response.Charset=UTF-8 %>
<%
« Ce programme réduit les lectures de base de données en utilisant la fonctionnalité FSO d'ASP. Après test, il peut réduire la charge du serveur de 90 %. La vitesse d’accès aux pages est fondamentalement la même que celle des pages statiques.
"Comment utiliser : placez le fichier sur le site Web, puis utilisez include pour le référencer dans la première ligne du fichier qui doit être référencé.
'=======================Zone de paramètres======================== =====
DirName=cachenew/ 'Le répertoire dans lequel les fichiers statiques sont enregistrés doit avoir / à la fin. Pas besoin de le créer manuellement, le programme le créera automatiquement.
TimeDelay=30 'Intervalle de temps de mise à jour, l'unité est en minutes, par exemple, 1 440 minutes correspondent à 1 jour. Les fichiers statiques générés sont supprimés après cet intervalle.
'======================Zone de programme principale========================= ====
foxrax=Demande(foxrax)
si foxrax= alors
FileName=GetStr()&.txt
NomFichier=NomRép&NomFichier
if tesfold(DirName)=false then'Créez le dossier s'il n'existe pas
createfold(Server.MapPath(.)&/&DirName)
finir si
if ReportFileStatus(Server.MapPath(.)&/&FileName)=true then'S'il existe un fichier statique généré, lisez le fichier directement
Définir FSO = CreateObject (Scripting.FileSystemObject)
Fichiers Dim, LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'Définir l'objet fichier CatchFile
LastCatch=CDate(Files.DateLastModified)
Si DateDiff(n,LastCatch,Now())>TimeDelay Then' dépasse
Liste=getHTTPPage(GetUrl())
ÉcrireFichier(NomFichier)
Autre
Liste=LireFichier(NomFichier)
Fin si
Définir FSO = rien
Réponse.Write (Liste)
Réponse.Fin()
autre
Liste=getHTTPPage(GetUrl())
ÉcrireFichier(NomFichier)
finir si
finir si
'========================Zone de fonctions======================= = =====
'Obtenir l'URL de la page actuelle
Fonction GetStr()
'En cas d'erreur, reprendre ensuite
Dim strTemps
strTemps = strTemps & Request.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Server.URLEncode(strTemps)
Fonction de fin
'Obtenir l'URL de la page mise en cache
Fonction GetUrl()
En cas d'erreur, reprendre ensuite
Dim strTemp
Si LCase(Request.ServerVariables(HTTPS)) = off Alors
strTemp = http://
Autre
strTemp = https://
Fin si
strTemp = strTemp & Request.ServerVariables (SERVER_NAME)
Si Request.ServerVariables(SERVER_PORT) <> 80 Alors
strTemp = strTemp & : & Request.ServerVariables(SERVER_PORT)
finir si
strTemp = strTemp & Request.ServerVariables (URL)
Si Trim(Request.QueryString) <> Alors
strTemp = strTemp & ? & Trim(Request.QueryString) & &foxrax=foxrax
autre
strTemp = strTemp & ? & foxrax=foxrax
finir si
GetUrl = strTemp
Fonction de fin
'Attrapez la page
Fonction getHTTPPage(url)
Définir Mail1 = Server.CreateObject (CDO.Message)
Mail1.CreateMHTMLBody URL,31
AA=Mail1.HTMLCorps
Définir Mail1 = Rien
getHTTPage=AA
'Définir la récupération = Server.CreateObject (Microsoft.Xmlhttp)
'Récupération.Ouvrez GET,url,false,,
'Récupération.Envoyer
'getHTTPPage = Récupération.ResponseBody
'Définir la récupération = Rien
Fonction de fin
SubWriteFile(filePath)
faible stm
définir stm=Server.CreateObject(adodb.stream)
stm.Type=2 'adTypeText, données texte
stm.Mode=3 'adModeReadWrite, lecture et écriture, si ce paramètre est 2, une erreur sera signalée
stm.Charset=utf-8
stm.Ouvrir
liste stm.WriteText
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, écraser si le fichier existe
stm.Flush
stm.Fermer
définir stm = rien
Fin du sous-marin
Fonction ReadFile(filePath)
faible stm
définir stm=Server.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary, lire les données binaires
stm.Mode=3 'adModeReadWrite, seulement 3 peuvent être utilisés ici, d'autres provoqueront des erreurs
stm.Ouvrir
stm.LoadFromFile Server.MapPath(filePath)
stm.Position=0 'Replace le pointeur vers le point de départ
stm.Type=2 'Données texte
stm.Charset=utf-8
ReadFile = stm.ReadText
stm.Fermer
définir stm = rien
Fonction de fin
'Vérifier si le fichier existe
Fonction ReportFileStatus (FileName)
set fso = serveur.createobject (scripting.filesystemobject)
si fso.fileexists(FileName) = true alors
ReportFileStatus=true
autre
ReportFileStatus = faux
finir si
définir fso = rien
fonction de fin
'Vérifier si le répertoire existe
fonction tesfold (foname)
set fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(foname)
si fs.folderexists (filepathjm) alors
tesfold=Vrai
autre
tesfold=Faux
finir si
définir fs = rien
fonction de fin
'Créer un répertoire
sous-créer un dossier (foname)
set fs=createobject(scripting.filesystemobject)
fs.createfolder(foname)
définir fs = rien
fin du sous
'Supprimer les fichiers
function del_file(path) 'path, le chemin du fichier contient le nom du fichier
set objfso = serveur.createobject (scripting.FileSystemObject)
'chemin=Serveur.MapPath(chemin)
if objfso.FileExists(path) then 'S'il existe, supprimez-le
objfso.DeleteFile(chemin) 'Supprimer le fichier
autre
'response.write <script language='Javascript'>alerte('Le fichier n'existe pas')</script>
finir si
définir objfso = rien
fonction de fin
%>