Esta es la primera vez que escribo un artículo en CSDN. Mi talento literario y mis conocimientos teóricos son limitados. Agradezco correcciones si escribo incorrectamente. De hecho, ya hay muchos artículos en Internet sobre la generación de HTML con ASP. Un método es el método de generación ASP + XML, aunque una ventaja es que puede hacer referencia directamente al código fuente original de la página que se generará sin escribir una plantilla. un programa, pero probé este método en ese momento y descubrí que su estabilidad era pobre y sus requisitos de velocidad de red eran altos (por supuesto, no estaba en el servidor). Especialmente en el espacio virtual, a menudo se informan errores. Puede deberse a que no tengo suficiente procesamiento de código en este método. Para resumir, este artículo utiliza otro método comúnmente utilizado, ASP+FSO. El marco también se utiliza aquí para reducir el tiempo de generación al procesar una gran cantidad de paginación. Este método es para algunos archivos ASP con grandes volúmenes de páginas.
Aquí cito un ejemplo simple: (comercio electrónico de viajes) las páginas estáticas de aplicaciones de hoteles (htm) en las principales ciudades del país se muestran en la paginación
1. Entorno del sistema de aplicaciones: win2000 + ASP + MSSQL / ACCESS (la base de datos es básicamente irrelevante) +iis5.0
2.1 listas de ciudades (CityHtml): incluye tres campos que definen nombres html estáticos (ID de ciudad (número automático), nombre de la ciudad (CityName como Beijing), nombre de prefijo html generado (HtmlStartName como Beijing))
3.1 listas de hoteles nacionales (Hotel): Aquí solo creo tres campos (ID de hotel (número automático), nombre de ciudad (City), nombre de hotel (HotelName)) para facilitar la referencia a la instancia.
4.1 páginas ASP (ToHtm.asp) (usadas para generar htm)
5.1 páginas de marco de bucle (IframeToHtm.asp), marco de aplicación para generar htm por lotes
El siguiente es el código fuente de dos páginas de
marco de bucle para la generación de páginas por lotes: IFrameToHtm. .asp
< !--#include file="conn.asp"-->'Conectarse a la base de datos
<%
dimrs,sql,j
establecer rs=Server.CreateObject("adodb.recordset")
sql="select * from CityHtml"'Abre la lista de ciudades de todo el país
rs.open sql, conexión, 1,1
hazlo hasta que rs.eof' recorra las principales ciudades%>
<!--El siguiente marco de aplicación abre la página generada en ToHtml-->
<IFRame name="LoadRcHtm<%=j%>" frameborder=0 ancho=100% alto=30 desplazamiento=no src="ToHtml.asp?Ciudad=<%=cstr(rs("ciudad"))%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
loop%>
Generar página del programa: ToHtm.asp Probablemente escriba un comentario en el código fuente **
<!--#include file="conn.asp"-->'archivo de conexión de datos
<%
En caso de error Reanudar Siguiente'Procesamiento de tolerancia a fallos
La definición de Dim City hace que la ciudad genere la página
City=Request.Querystring("City")' Obtiene el valor del hotel urbano generado pasado desde el marco, que se presentará más adelante.
HtmlStartName=Request.Querystring("HtmlStartName")'Obtener el prefijo del nombre del archivo html generado
Dim sql' cadena de búsqueda, aquí abriré la tabla directamente sin buscar variables, solo escriba las condiciones de búsqueda usted mismo.
sql="seleccione * del Hotel donde [Ciudad] = '" & Ciudad & "' "
Objeto de operación de datos de Dim oRs
Dim PageCounts'Para implementar la generación de paginación, debe saber cuántas páginas hay
Establecer oR = Server.CreateObject ("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'Busca la tabla que abre el hotel igual a la variable Ciudad
oRs.pagesize=10'Diez registros son una página
PageCounts=oRs.pagecount' para obtener cuántas páginas generar, úselo en un bucle para generar
Dim fs' define el objeto de archivo fso
Carpetas atenuadas: el nombre de la carpeta donde se almacenan las páginas estáticas
Dim Filestart' define el prefijo para generar archivos htm
Establecer fs=Server.CreateObject("Scripting.FileSystemObject")
Yo tenue
for i=1 to PageCounts' comienza a generar páginas en un bucle, es decir, se genera paginación.
página=yo
oRs.absolutepage=i'número de página
rowcount=oRs.pagesize'Número de registros en la página actual
carpetas=servidor.mappath("CiudadHtml")
si (fs.FolderExists(carpetas)) entonces determine si la carpeta existe
demás
fs.CreateFolder(folders)' crea la carpeta CityHtml si no existe
terminar si
si i=1 entonces
Filestart=HtmlStartName'Si es la primera página, defina el nombre del archivo y pase el nombre del valor. Por ejemplo, beijing es beijing.htm.
demás
Filestart=HtmlStartName&i'Si la segunda página es beijing+1, por ejemplo, si hay dos páginas, i es igual a 2, entonces es beijing2.htm y así sucesivamente...(se agrega el sufijo .htm al final)
terminar si
Los archivos tenues definen la variable de nombre del archivo de texto generado
Dim filez'define variable de nombre de ruta de archivo
files=Filestart&".txt"'nombre de este archivo
filez=carpetas&""&"ruta del archivo de texto de archivos
'Eliminar archivos
Dim checkfile'comprueba si el archivo de texto ya existe, si es así, elimínelo
checkfile=server.mappath("CityHtml"&Filestart&".htm")'Compruebe si el archivo htm ya existe; si es así, elimínelo
if (fs.FileExists(checkfile)) entonces'Compruebe si el archivo htm ya existe, si es así, elimínelo
Dim df'define objeto de archivo *eliminar archivo usando*
Establezca df=fs.GetFile(checkfile)'defina el archivo que se eliminará
df.delete' eliminar archivo
fin si'fin del juicio
Dim ts' define el objeto de archivo de escritura
set ts = fs.createtextfile(filez,true) 'Habilitar la escritura del contenido del archivo**Simplemente escribo el nombre del hotel y la visualización de paginación del número estático en el texto**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' Después de eso, se generará el contenido del archivo principal y se utilizará Response.write
ts.write("<META http-equiv=Tipo de contenido content=text/html; charset=gb2312>"&vbcrlf)
ts.write("<meta nombre=palabras clave contenido="&ciudad&"hotel>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<ANCHO DE TABLA=760 espacio entre celdas=0 relleno de celdas=0 align=center>"&vbcrlf&_
"<TR><TD ancho='100%'>"&vbcrlf)
'Iniciar salida de paginación
'No entraré en detalles sobre el principio del programa de localización digital aquí. Los amigos que no lo entiendan pueden buscarlo en Internet.
Página actual de página oscura
Dim Page2'Variable de paginación digital
Variable de paginación digital de Dims
si página = 1 entonces
ts.write (" [Inicio] [Página anterior] ")
demás
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[Inicio]</a> <a href="&HtmlStartName&Replace(página-1,1,"")&".htm"& " class=blue>Página anterior</a> ")
terminar si
página2=(página-(página mod 10))/10
si página2<1 entonces página2=0
para s=página2*10-1 a página2*10+10
si s>0 entonces
si s=cint(página) entonces
ts.write (" <font color='#000000'>["& s & "]</font>")
demás
si s=1 entonces
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&".htm"&" class=blue>["& s &"]</a>")
demás
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
terminar si
terminar si
si s=ors.pagecount entonces
salida para
terminar si
terminar si
próximo
si cint(página)=ors.pagecount entonces
ts.write ("[página siguiente] [última página]")
demás
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[página siguiente]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [ Última página]</a>")
terminar si
ts.write("</TD></TR>")
'Fin de la salida de paginación
do while not ors.eof y rowcount>0 'Nombre del hotel de salida
ts.write("<TR><TD width='100%'>"&oRs.Fields("Chinese_Name")&"</TD></TR>"&vbcrlf)
oRs.movenext
rowcount=rowcount-1'Cuando el número de registros en la página es -1 bucle
ts.write("</Table></body></html>"&vbcrlf)
ts.cerrar
set ts=nada 'Liberar objeto
Dim EditFile' define las variables del archivo de reescritura
Establecer EditFile = fs.GetFile(filez)'Establecer el objeto de archivo de reescritura
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'Reescribe el archivo de texto en htm
La siguiente generación del bucle finaliza (generación de paginación)
set EditFile=nada 'Liberar objeto
set fs=nada'liberar el objeto
si err.number<>0 entonces 'Manejar los errores generados
Response.write(Ciudad&"Se produjo un error desconocido al actualizar <A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">Reactualizar</A>")
demás
Response.Write(Ciudad&"Actualización del hotel completada"&Ahora())
terminar si
%>