Este programa reduce las lecturas de la base de datos mediante el uso de la funcionalidad FSO de ASP. Después de las pruebas, puede reducir la carga del servidor en un 90%. La velocidad de acceso a la página es básicamente la misma que la de las páginas estáticas. Copie el código de código de la siguiente manera:
<%@LANGUAGE=PÁGINA DE CÓDIGOS VBSCRIPT=65001%>
<% Respuesta.CodePage=65001%>
<% Respuesta.Charset=UTF-8 %>
<%
'Este programa reduce las lecturas de la base de datos mediante el uso de la funcionalidad FSO de ASP. Después de las pruebas, puede reducir la carga del servidor en un 90%. La velocidad de acceso a la página es básicamente la misma que la de las páginas estáticas.
'Cómo usarlo: coloque el archivo en el sitio web y luego use incluir para hacer referencia a él en la primera línea del archivo al que se debe hacer referencia.
'=======================Área de parámetros========================= =====
DirName=cachenew/ 'El directorio donde se guardan los archivos estáticos debe tener / al final. No es necesario crearlo manualmente, el programa lo creará automáticamente.
TimeDelay=30 'Intervalo de tiempo de actualización, la unidad son minutos, por ejemplo, 1440 minutos es 1 día. Los archivos estáticos generados se eliminan después de este intervalo.
'======================Área principal del programa========================= ====
foxrax=Solicitud(foxrax)
si foxrax = entonces
NombreDeArchivo=GetStr()&.txt
NombreDeArchivo=NombreDir&NombreDeArchivo
si tesfold(DirName)=false entonces'Crear la carpeta si no existe
createfold(Servidor.MapPath(.)&/&DirName)
terminar si
si ReportFileStatus(Server.MapPath(.)&/&FileName)=true entonces 'Si hay un archivo estático generado, lea el archivo directamente
Establecer FSO=CreateObject(Scripting.FileSystemObject)
Archivos oscuros, LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'Definir objeto de archivo CatchFile
LastCatch=CDate(Files.DateLastModified)
Si DateDiff(n,LastCatch,Now())>TimeDelay Then' excede
Lista=getHTTPPage(GetUrl())
Escribir archivo (nombre de archivo)
Demás
Lista=Leer archivo(Nombre de archivo)
Terminar si
Establecer FSO = nada
Respuesta.Escribir(Lista)
Respuesta.Fin()
demás
Lista=getHTTPPage(GetUrl())
Escribir archivo (nombre de archivo)
terminar si
terminar si
'========================Área de función======================== = =====
'Obtener la URL de la página actual
Función GetStr()
'En caso de error, reanudar siguiente
Temperaturas de intensidad tenues
strTemps = strTemps y Solicitud.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Servidor.URLEncode(strTemps)
Función final
'Obtener la URL de la página en caché
Función ObtenerUrl()
En caso de error Continuar siguiente
Temperatura de intensidad tenue
Si LCase(Request.ServerVariables(HTTPS)) = desactivado Entonces
strTemp = http://
Demás
strTemp = https://
Terminar si
strTemp = strTemp y Solicitud.ServerVariables(SERVER_NAME)
Si Request.ServerVariables(SERVER_PORT) <> 80 Entonces
strTemp = strTemp &: & Solicitud.ServerVariables(SERVER_PORT)
terminar si
strTemp = strTemp y Solicitud.ServerVariables(URL)
Si Trim(Request.QueryString) <> Entonces
strTemp = strTemp & ? & Recortar(Request.QueryString) & &foxrax=foxrax
demás
strTemp = strTemp & ? & foxrax=foxrax
terminar si
ObtenerUrl = strTemp
Función final
'Captura la página
Función getHTTPPage(url)
Establecer Correo1 = Servidor.CrearObjeto(CDO.Mensaje)
Mail1.CreateMHTMLBody URL,31
AA=Correo1.HTMLCuerpo
Establecer Correo1 = Nada
getHTTPágina=AA
'Establecer recuperación = Server.CreateObject(Microsoft.Xmlhttp)
'Recuperación.Abrir GET,url,falso,,
'Recuperación.Enviar
'getHTTPPage = Recuperación.ResponseBody
'Establecer recuperación = Nada
Función final
SubWriteFile(rutadelarchivo)
tenue stm
establecer stm=Servidor.CreateObject(adodb.stream)
stm.Type=2 'adTypeText, datos de texto
stm.Mode = 3 'adModeReadWrite, lectura y escritura, si este parámetro es 2, se informará un error
stm.Charset=utf-8
stm.abierto
lista stm.WriteText
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, sobrescribir si el archivo existe
stm.flush
stm.Cerrar
establecer stm = nada
Subtítulo final
Función LeerArchivo(rutadelarchivo)
tenue stm
establecer stm=Servidor.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary, leer datos binarios
stm.Mode=3 'adModeReadWrite, aquí solo se pueden usar 3, otros causarán errores
stm.abierto
stm.LoadFromFile Server.MapPath(rutadelarchivo)
stm.Position=0 'Mover el puntero de regreso al punto inicial
stm.Type=2 'Datos de texto
stm.Charset=utf-8
LeerArchivo = stm.ReadText
stm.Cerrar
establecer stm = nada
Función final
'Comprueba si el archivo existe
Función ReportFileStatus(Nombre de archivo)
establecer fso = server.createobject(scripting.filesystemobject)
si fso.fileexists(FileName) = verdadero entonces
ReportFileStatus=verdadero
demás
ReportFileStatus=falso
terminar si
establecer fso = nada
función final
'Comprueba si el directorio existe
función tesfold(fonome)
establecer fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(nombredefono)
si fs.folderexists (filepathjm) entonces
tesfold=Verdadero
demás
tesfold=Falso
terminar si
establecer fs = nada
función final
'Crear directorio
subcreatefold (nombre de archivo)
establecer fs=createobject(scripting.filesystemobject)
fs.createfolder(nombredefono)
establecer fs = nada
sub final
'Eliminar archivos
función del_file(path) 'ruta, la ruta del archivo contiene el nombre del archivo
establecer objfso = server.createobject(scripting.FileSystemObject)
'ruta=Servidor.MapPath(ruta)
si objfso.FileExists(ruta) entonces 'Si existe, elimínelo
objfso.DeleteFile(ruta) 'Eliminar archivo
demás
'response.write <script language='Javascript'>alert('El archivo no existe')</script>
terminar si
establecer objfso = nada
función final
%>