Recientemente, el sitio web de un amigo necesita generar un sitio web estático, pero a veces habrá problemas al generarlo. Hemos compilado algunos métodos y puede elegir según las necesidades de su sitio web. 1. Dos métodos simples para generar páginas de inicio estáticas en ASP
¿Por qué generar una página de inicio estática?
1. Si su página de inicio lee mucho la base de datos, la velocidad es muy lenta y consume muchos recursos del servidor. Por supuesto, usar la velocidad de acceso a la página estática es mucho más rápido.
2. Los motores de búsqueda lo encuentran fácilmente
3. Si hay algún problema con el programa, se puede acceder a la página de inicio.
4. Hay muchos otros, piénsalo tú mismo :)
Método de aplicación:
Si su página de inicio es index.asp, puede generar index.htm (la secuencia de acceso predeterminada debe ser index.htm, index.asp). De esta forma, cuando un visitante visita su sitio web por primera vez, abre index.htm. Puede convertir el enlace en la página de inicio del sitio web en index.asp, de modo que cuando haga clic en el enlace en la página de inicio desde cualquier página del sitio web, aparecerá index.asp. Esto garantiza la puntualidad de las actualizaciones de la información (después de todo). , index.htm debe actualizarse manualmente cada vez).
Método uno:
Incluya directamente el archivo de la página de inicio en el cuadro de texto del formulario, envíe el código de la página de inicio como datos y luego genere una página estática.
El código es el siguiente:
Copie el código de código de la siguiente manera:
<%
'------------------------------------------------ - ---------
'Utilice el envío de formulario para generar código para la página de inicio estática
'Asegúrese de que su espacio admita FSO y tenga menos contenido de código en la página de inicio
'------------------------------------------------ - ---------
contenido oscuro
contenido = Recortar (Solicitud.Forma (contenido))
si contenido <> entonces
llamar a makeindex()
terminar si
sub índice de creación()
Establecer Fso = Server.CreateObject(Scripting.FileSystemObject)
Archivo=Server.MapPath(index.htm)
Establecer Site_Config=FSO.CreateTextFile(Archivo,verdadero, Falso)
Site_Config.Escribir contenido
Site_Config.Cerrar
Establecer Fso = Nada
Response.Write(<script>alert('¡La página de inicio se ha generado correctamente!')</script>)
sub final
%>
<nombre del formulario=método formulario1=acción de publicación=>
<nombre del área de texto=contenido>
<!-- #i nclude archivo=index.asp -->
</textarea>
<br>
<tipo de entrada=enviar nombre=Enviar valor=Enviar>
</formulario>
defecto:
1. Si la página de inicio incluye la etiqueta <@ ..>, se mostrará un error.
2. Si el código de la página de inicio es demasiado largo, no se puede enviar mediante un formulario (existe un cierto límite en la longitud de los datos del formulario).
Solución:
1. Elimine la etiqueta <@> en index.asp
2. Utilice eWebEditor para enviar y admitir big data (se puede segmentar automáticamente)
ventaja:
El contenido se puede modificar en tiempo real a medida que se genera.
Método dos:
Utilice XMLHTTP directamente para obtener el código de index.asp
Copie el código de código de la siguiente manera:
<%
'------------------------------------------------ - ---------
'Utilice XMLHTTP para generar código de página de inicio estático
'Curl es la dirección de tu página de inicio, asegúrate de que tu espacio admita FSO
'------------------------------------------------ - ---------
lectura tenue, rizo, contenido
Rizo=http://www.xx0123.com/index.asp
leer=getHTTPage(Curl)
si lee <> entonces
contenido = leer
llamar a makeindex()
terminar si
sub índice de creación()
Establecer Fso = Server.CreateObject(Scripting.FileSystemObject)
Archivo=Server.MapPath(index.htm)
Establecer Site_Config=FSO.CreateTextFile(Archivo,verdadero, Falso)
Site_Config.Escribir contenido
Site_Config.Cerrar
Establecer Fso = Nada
Response.Write(<script>alert('¡La página de inicio se ha generado correctamente!')</script>)
sub final
Función getHTTPPage(url)
http oscuro
establecer http=Servidor.createobject(Microsoft.XMLHTTP)
Http.open OBTENER,url,falso
http.enviar()
si Http.readystate<>4 entonces
función de salida
terminar si
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
establecer http=nada
si err.number<>0 entonces err.Clear
Función final
Función BytesToBstr(cuerpo,Cset)
corriente de objetos tenue
establecer objstream = Server.CreateObject(adodb.stream)
objstream.Tipo = 1
objstream.Modo =3
objstream.Abrir
objstream.Escribir cuerpo
objstream.Posición = 0
objstream.Tipo = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Cerrar
establecer objstream = nada
Función final
%>
2. Separación de plantillas y generación de lotes.
El contenido que se reemplazará en el archivo de plantilla se incluye en {...}
Para lograr la simplicidad, se eliminó el código de manejo de errores (el parámetro de cadena que se reemplazará en el reemplazo no puede ser un valor nulo y, por supuesto, fso también debe realizar la verificación de errores).
Copie el código de código de la siguiente manera:
<%
'------------------------------------------------ - -------------------------------------------------- -----------------
' De: kevin fung http://www.yaotong.cn
' Autor: kevin fung ID de Laggard: kevin2008, manténgalo como está al reimprimir
' Hora: 2006/07/05 Primer lanzamiento del Foro Laggard
'------------------------------------------------ - -------------------------------------------------- ------------------
Dim start 'Esta variable es la posición del conjunto de registros a la que apuntará el puntero, obtenida dinámicamente a través de parámetros
Plantilla tenue 'El archivo de plantilla leerá esta variable en una cadena
Contenido tenue 'Variable de cadena reemplazada
Dim objConn 'Objeto de conexión
Dim ConnStr 'Cadena de conexión
Declaración de consulta dim sql '
Dim cnt:cnt = 1 'Inicializa el contador de bucle de este ciclo
inicio = solicitud (inicio) 'Obtener la posición inicial del puntero redondo actual
Si IsNumeric(inicio) Entonces inicio = CLng(inicio) De lo contrario inicio=1
Si inicio=0 Entonces inicio = 1 'Si inicio
ConnStr = Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = & Server.MapPath(DataBase.mdb)
sql = seleccionar * de nombre_tabla
Establecer objConn = Server.CreateObject(ADODB.Connection)
objConn.Open ConnStr
establecer rs = Server.CreateObject(ADODB.Recordset)
rs.open sql,objConn,1,1 'Abre el conjunto de datos
rs.AbsolutePosition = start 'El paso más crítico es apuntar el puntero al inicio, que se obtiene dinámicamente a través de parámetros
Plantilla = getTemplate(Server.MapPath(template.html))' template.html es un archivo de plantilla y la cadena se lee a través de la función getTemplate. El contenido que se reemplazará en el archivo de plantilla está encerrado en {...}
Mientras que Not rs.eof y cnt <= 500 '500 es para establecer el número de ciclos para que una solicitud genere una página. Modifíquelo de acuerdo con la situación real. Si es demasiado alto, se producirá un error de tiempo de espera cuando haya muchos. conjuntos de registros.
contenido = Reemplazar(Plantilla,{filed_name_1},rs(filed_name_1)) 'Reemplazar el contenido de la plantilla con el valor del campo
contenido = Reemplazar(contenido,{filed_name_2},rs(filed_name_2))
...
contenido = Reemplazar(contenido,{filed_name_n},rs(filed_name_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'Genera un documento HTML reemplazando la cadena de plantilla. htmfiles es el directorio donde se almacenan los archivos estáticos. Créelo manualmente.
cnt = cnt + 1 'Contador más 1
inicio = inicio + 1 'Incrementos de variable de puntero
rs.movenext
encaminarse a
Si no es rs.eof, entonces 'Realice la siguiente ronda de solicitudes actualizando y pasando la variable de puntero de inicio a la siguiente ronda
respuesta.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
Demás
¡Se completó la generación de respuesta.write del archivo HTML!
terminar si
rs.Cerrar()
Configurar=Nada
objConn.Cerrar()
Establecer objConn = Nada
Función getTemplate(template)' para leer la plantilla, devolver una cadena, la plantilla es el nombre del archivo
tenue fso,f
establecer fso=CreateObject(Scripting.FileSystemObject)
establecer f = fso.OpenTextFile(plantilla)
getTemplate=f.ReadAll
f.cerrar
establecer f = nada
establecer fso=Nada
Función final
Sub genHtml(content,filename)' escribe el contenido reemplazado en el documento HTML, el contenido es la cadena reemplazada y el nombre de archivo es el nombre del archivo generado.
tenue fso,f
Establecer fso = Server.CreateObject(Scripting.FileSystemObject)
Establecer f = fso.CreateTextFile(filename,true)'Si el nombre del archivo se repite, el archivo antiguo se sobrescribirá
f.Escribir contenido
f.Cerrar
Establecer f = Nada
establecer fso=Nada
Subtítulo final
%>