La página 1 usa Msxml2.ServerXMLHTTP para capturar contenido web. La página 2 usa ADODB.Stream para escribir el contenido capturado en un archivo. La página 3 ofrece un ejemplo específico. Cualquiera que conozca ASP debe saber que ASP es un lenguaje de secuencias de comandos que interpreta y ejecuta. Y la eficiencia de ejecución de los programas de script suele ser muy baja. Si el número de visitas al sitio es relativamente alto, el servidor consumirá muchos recursos. El resultado es que la velocidad de acceso al sitio cae rápidamente. el programa para mejorar la eficiencia de ejecución, y otro método es generar periódicamente archivos html estáticos para las páginas más visitadas del sitio web, lo que puede resolver de manera muy efectiva el problema de la velocidad de acceso. De lo contrario, no funcionará de ninguna manera. A continuación, presento un método para usar el componente Msxml2.ServerXMLHTTP para capturar la página web estática que desea generar y luego usar fso o ado para escribirla. Cabe señalar que todos los ejemplos de este artículo utilizan la codificación utf -8. Si se cambia a gb2312, se deben modificar los atributos correspondientes. Primero proporcione la siguiente función:
<!--'Si tiene preguntas relacionadas, visite http://www.downcodes.com
Función GetURL(URL)
'Descargar función principal
Intervalo de tiempo constante=60
'Establecer intervalo de tiempo
'Si el tiempo de descarga es muy lento, escríbalo como 120 segundos
'Respuesta.LCID=2052
constante lResolver=6
'Tiempo de espera del nombre de dominio de resolución, segundos
constante lConectar=6
'Tiempo de espera del sitio de conexión, segundos
constante lEnviar=6
'Tiempo de espera de envío de solicitud de datos, segundos
constante lRecibir=40
'Tiempo de espera de descarga de datos, segundos
en caso de error reanudar Siguiente
http oscuro
Establecer http = Server.CreateObject ("Msxml2.ServerXMLHTTP")
http.setTimeouts lResolver*1000,lConectar*1000,lEnviar*1000,lRecibir*1000
http.Abrir "OBTENER", URL, Falso
http.Enviar
Seleccione Caso http.readyState
Caso 0
GetURL="Error en la inicialización del objeto"
Err.Borrar
establecer http=nada
Función de salida
Caso 1
GetURL="Tiempo de espera del análisis del nombre de dominio/tiempo de espera del sitio de conexión"
Err.Borrar
establecer http=nada
Función de salida
Caso 2
GetURL="Se agotó el tiempo de espera de la solicitud de datos. ¿El servidor está defectuoso?"
Err.Borrar
establecer http=nada
Función de salida
Caso 3
GetURL="Tiempo de espera de descarga de datos/tiempo de espera de comentarios"
Err.Borrar
establecer http=nada
Función de salida
Caso 4
'Descarga exitosa
Finalizar selección
Si http.status<>200 entonces
GetURL="Error en la descarga"&Err.description
Err.Borrar
establecer http=nada
Función de salida
FINALIZAR SI
Si http.status="200" entonces
ObtenerURL=http.TextoRespuesta
'GetURL=Guardar archivo()
Terminar si
establecer http=nada
Función final
-->
La función principal es capturar el contenido del archivo de la página web del parámetro de dirección. Utilice el método varia=GetURL(" http://www.downcodes.com ". Si es una dirección de prueba local, puede escribirla. como http://localhost/default.asp y use esta función. Cabe señalar que el atributo Response.LCID=2052 no es compatible con Windows Server 2000, pero no es un gran problema y se puede usar normalmente siempre que está comentado. También hay algunos atributos de tiempo de espera que se pueden personalizar según sea necesario, pero tenga cuidado de no configurar el tiempo demasiado corto; de lo contrario, si el archivo es grande o la velocidad de acceso a la dirección es lenta, el rastreo puede fallar. Utilicemos esta función para rastrear el contenido del archivo de la página web que desea generar. Almacene el contenido en una variable y espere a que se escriba en el archivo.
Esta clase se proporciona a continuación, que se utiliza para escribir el contenido recién capturado por la función en el archivo correspondiente, ¡y listo! Genere directamente la página web que desea generar, es muy conveniente y no es necesario modificarla. archivo original!
Clase Htmlmaker
'Pregunte por preguntas relacionadas. Consulte http://www.downcodes.com
'/************************
'/Instrucciones de configuración de propiedades
'/foldename "nombre de carpeta"
'/ Si no se establece, se generará automáticamente un nombre de carpeta en el formato de hora [año, mes, día]
'/ Nombre de archivo "Nombre de archivo" (incluidos sufijos y sufijos)
'/ Si no se establece, se generará automáticamente un nombre de archivo en formato de hora [horas, minutos, segundos], con el sufijo .html
'/ Htmlstr "Contenido del código generado"
'/************************
Carpeta Html privada, nombre de archivo Html, contenido Html
Propiedad pública let nombre de carpeta (cadena)
Carpeta HTML=cadena
Propiedad final
Propiedad pública let Nombre de archivo (cadena)
HtmlFilename=cadena
Propiedad final
Propiedad pública let Htmlstr(str)
Contenido HTML=cadena
Propiedad final
'/************************
'/Función de fecha de conversión de nombre de archivo
'/************************
Función privada Nombre de fecha1 (cadena horaria)
tenue s_año,s_mes,s_día
s_año=año(timestr)
si len(s_year)=2 entonces s_year="20"&s_year
s_mes=mes(timestr)
si s_mes<10 entonces s_mes="0"&s_mes
s_day=día(timestr)
si s_day<10 entonces s_day="0"&s_day
Nombre de fecha1=s_año & s_mes & s_día
Función final
Función privada Nombre de fecha2 (timestr)
tenue s_hora,s_minuto,s_ss
s_hora=hora(timestr)
si s_hora<10 entonces s_hora="0"&s_hora
s_minuto=minuto(timestr)
si s_minuto<10 entonces s_minuto="0"&s_minuto
s_ss=segundo(timestr)
si s_ss<10 entonces s_ss="0"&s_ss
Nombre de fecha2 = s_hora & s_minuto & s_ss
Función final
'/***************************
'/ inicialización
'/************************
Subclase privada_initialize()
HtmlFolder=NombreFecha1(ahora)
HtmlFilename=Fechanombre2(ahora)&".html"
HTMLC
Finalizar
subsubprivado class_terminate()
Subtítulo final
'/************************
'/generación de archivos HTML
'/************************
Public Sub Htmlmake()
'En caso de error, reanudar siguiente
ruta de archivo tenue, fso, fout
ruta de archivo = Carpeta Html&"/"&HtmlFilename
Establecer fso = Server.CreateObject("Scripting.FileSystemObject")
Si fso.FolderExists (Server.MapPath (HtmlFolder)) Entonces
Demás
fso.CreateFolder(Servidor.MapPath(HtmlFolder))
Terminar si
' Establecer fout = fso.CreateTextFile(Server.MapPath(rutadelarchivo),true)
' fout.WriteLine HtmlContent
'fout.cerrar
objFSO tenue, adTypeText, adSaveCreateOverWrite, Charsett, objAdoStream
Charset = "utf-8"
establecer objAdoStream = Server.CreateObject("ADODB.Stream")
tipo de anuncioTexto = 2
anuncioGuardarCreateOverWrite = 2
objAdoStream.Type = adTypeText
objAdoStream.Open
objAdoStream.Charset = Charsett
objAdoStream.WriteText(HtmlContent)
objAdoStream.SaveToFile Server.MapPath(ruta de archivo),2
objAdoStream.Cerrar
Fin Sub
'/************************
'/eliminar archivo HTML
'/************************
Sub HTMLdel público()
ruta de archivo tenue, fso
ruta de archivo = Carpeta Html&"/"&HtmlFilename
Establecer fso = CreateObject("Scripting.FileSystemObject")
si fso.FileExists (Server.MapPath (ruta de archivo)) entonces
fso.DeleteFile(Servidor.mappath(rutadelarchivo))
terminar si
Establecer fso = nada
Clase
final subfinal
Para que todos aprendan mejor, demos un ejemplo específico:
tenemos la dirección de un sitio web http://www.downcodes.com/.
Queremos generar un archivo html estático desde su página de inicio, que es default.asp
. créelo Archivo: makeindex.asp
<!--#include file="function_class.asp"-->
<%
índice tenuehtmlstr
indexhtmlstr=GetURL(" http://www.downcodes.com/default.asp ")
nombre de archivo de índice tenue
indexfilename="index.htm"
estado de acción tenue
si len(indexhtmlstr) <200 entonces
Acti&indexfilename&"encontró el error "&indexhtmlstr&""
demás
atenuar myhtml
establecer myhtml = nuevo Htmlmaker
myhtml.foldename = "../.."
myhtml.Filename = nombre de archivo indexado
mihtml.Htmldel
myhtml.Htmlstr = indexhtmlstr
mihtml.Htmlmake
establecer myhtml=nada
acti&indexfilename&"archivo"
terminar si
respuesta.escribir actionstat
%>
¡El contenido del archivo function_class.asp incluye principalmente las funciones proporcionadas anteriormente y la clase que genera el archivo!
Ejecute makeindex.asp para generar el archivo htm.