¿Cómo generar una página HTML para una página ASP?
A medida que aumenta el número de visitas al sitio web, cada vez que se leen datos de la base de datos, se produce a expensas de la eficiencia. Muchas personas que utilizan ACCESS como base de datos lo tendrán. más experiencia en páginas estáticas. Además, también se le dará prioridad a la hora de realizar búsquedas. Una práctica popular en Internet es escribir el código fuente de datos en la base de datos y luego leer los datos de la base de datos para generar una superficie estática, lo que prácticamente aumenta la cantidad de bases de datos. Generar directamente páginas estáticas a partir de páginas ASP existentes ahorrará mucho.
El siguiente ejemplo son tres páginas dinámicas index.asp?id=1/index.asp?id=2/index.asp?id=3/, que generan index1.htm e index2.htm respectivamente. , index3.htm. ndex1.htm, index2.htm e index3.htm existen en el siguiente directorio raíz:
lt;
dim strUrl, Item_Classid, id, FileName, FilePath, Do_Url, Html_Temp p>
Html_Temp="lt;ULgt;"
Para i=1 a 3
Html_Temp = Html_Tempamp;"lt;LIgt;"
Item_Classid = i
FileName = "Index"&Item_Classid&".htm"
FilePath = Server.MapPath("/")&"/")&" \"FileName
Html_Temp = Html_Temp&FilePath&"lt;/LIgt;"
Do_Url = "http://"
Doo_Url = Do_Urlamp .Solicitud.
Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
Do_Url = Do_Urlamp;"?Item_Classid="amp; Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.SERVER_NAME")&"/main/index.asp"
Do_Url = Do_Urlamp;"?CreateObject (" Microsoft.XMLHTTP")
objXmlHttp.open "GET", strUrl, false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
set m = ms(0) p>
tmp_str = get_exe_code(m.submatches(0))
Si ms.countlt;gt;0 entonces
establece m = ms(0)
p>
tmp_str = get_exe_code(m.submatches(0))
contenido = re.replace(content, tmp_str)
else
salir hacer
finalizar si
bucle
establecer m = nada
establecer ms = nada
re .pattern= "^\s*="
aspEnd=1
aspStart=inStr(aspEnd, "lt;")
content = re.replace (contenido, "lt;") contenido, "lt;") 2
set re1=new RegExp
re1.ignorecase = true
re1.global = false
re1.pattern = "respuesta\.Write(. )"
hacer mientras aspStartgt;aspEnd 1
execode = execodeamp;vbcrlfamp;" hughchiu_rtcode = hughchiu_rtcodeamp; """ amp;replace(replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """amp;vbcrlfamp;vbcrlfamp;" "") y;""""y;vbcrlf
aspEnd = inStr(aspStart,content,"
\gt;") 2
tmp_str = Mid(content, aspStart, aspEnd-aspStart-2)
hacer
set ms = re1.execute(tmp_str )
si ms.countlt;gt;0 entonces
establezca m = ms(0)
tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcodeamp ;"amp; m. submatches(0))
de lo contrario
salir
finalizar si
bucle
set m = nada
set ms = nada
execode = execodeamp; re.replace(tmp_str, "hughchiu_rtcode = hughchiu_rtcodeamp;")
aspStart= inStr(aspEnd, content, "lt;") 2
bucle
set re1 = nada
set re=nada
execode = execode&vbcrlfamp;" hughchiu_rtcode = hughchiu_rtcodeamp;"" amp;replace(replace(Mid(content, aspEnd), """", """"""), vbcrlf, """amp;vbcrlfamp;""" ) amp ;""""amp;vbcrlf
get_exe_code = "lt;"amp;execodeamp;"\gt."
Función final
función asp2html (nombre de archivo )
código tenue
código = reemplazar( reemplazar( get_exe_code(nombre de archivo), " hughchiu_rtcode = hughchiu_rtcodeamp;"""""amp;vbcrlf, "" ), "lt;" , "" ), "\gt;", "" )
'respuesta.Escribir(código)
ejecutar(código)
'response.Write( hughchiu_rtcode )
asp2html = hughchiu_rtcode
función final
gt
Ejemplo de uso:
set fso= CreateObject("Scripting.FileSystemObject")
set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )
f .WriteLine ( asp2html("youpage.asp") )
f.close
establecer f = nada
>
set fso = nada
Mira, aunque este es un método nuevo, todavía requiere soporte de fso