Dies ist das erste Mal, dass ich einen Artikel in CSDN schreibe. Mein literarisches Talent und mein theoretisches Wissen sind begrenzt. Ich freue mich über Korrekturen, wenn ich falsch schreibe. Tatsächlich gibt es im Internet bereits viele Artikel zur ASP-Generierung. Eine Methode ist die ASP+XML-Generierungsmethode. Ein Vorteil besteht jedoch darin, dass Sie direkt auf den ursprünglichen Quellcode der zu generierenden Seite verweisen können, ohne eine Vorlage schreiben zu müssen ein Programm, aber ich habe diese Methode damals getestet und festgestellt, dass die Stabilität schlecht und die Anforderungen an die Netzwerkgeschwindigkeit hoch waren (natürlich nicht auf dem Server). Insbesondere im virtuellen Raum werden häufig Fehler gemeldet. Dies kann an meiner unzureichenden Codeverarbeitung bei dieser Methode liegen. Um es kurz zu machen: Dieser Artikel verwendet eine andere häufig verwendete Methode, ASP+FSO. Das Framework wird auch hier verwendet, um die Generierungszeit bei der Verarbeitung einer großen Anzahl von Seiten zu verkürzen. Diese Methode gilt für einige ASP-Dateien mit großem Seitenvolumen.
Hier zitiere ich ein einfaches Beispiel: (Reise-E-Commerce) Statische Seiten (HTM) von Hotelanwendungen in Großstädten im ganzen Land werden in Seite
1 angezeigt. Anwendungssystemumgebung: win2000 + ASP + MSSQL/ACCESS (die Datenbank ist grundsätzlich irrelevant) +iis5.0
2.1 Städtelisten (CityHtml): einschließlich drei Feldern, die statische HTML-Namen definieren (Stadt-ID (automatische Nummer), Stadtname (CityName wie Peking), generierter HTML-Präfixname (HtmlStartName wie Peking))
3.1 nationale Hotellisten (Hotel): Hier erstelle ich nur drei Felder (Hotel-ID (automatische Nummer), Stadtname (City), Hotelname (HotelName)), um den Verweis auf die Instanz zu erleichtern.
4.1 ASP-Seiten (ToHtm.asp) (wird zum Generieren von HTML verwendet)
5.1 Loop-Frame-Seiten (IframeToHtm.asp), Anwendungsframework zum Batch-Generieren von HTML
Das Folgende ist der Quellcode von zwei Seiten des
Loop-Frames für die Batch-Generierung von Seiten: IFrameToHtm .asp
< !--#include file="conn.asp"-->'Mit der Datenbank verbinden
<%
dimrs,sql,j
set rs=Server.CreateObject("adodb.recordset")
sql="select * from CityHtml"'Öffnen Sie die Liste der Städte im ganzen Land
rs.open sql,conn,1,1
tun bis rs.eof' Schleife durch Großstädte%>
<!--Das folgende Anwendungsframework öffnet die von ToHtml generierte Seite-->
<IFRame name="LoadRcHtm<%=j%>" frameborder=0 width=100% height=30 scrolling=no src="ToHtml.asp?City=<%=cstr(rs("city"))%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
Schleife%>
Programmseite generieren: ToHtm.asp Ich schreibe wahrscheinlich einen Kommentar in den Quellcode **
<!--#include file="conn.asp"-->'Datenverbindungsdatei
<%
Bei Fehler Fortsetzen Weiter'Fehlertoleranzverarbeitung
Die Definition von Dim City ruft die Stadt ab, um die Seite zu generieren
City=Request.Querystring("City")' Ruft den generierten Stadthotelwert ab, der vom Framework übergeben wird, das später vorgestellt wird
HtmlStartName=Request.Querystring("HtmlStartName")'Holen Sie sich das Präfix für den generierten HTML-Dateinamen
Dimmen Sie die SQL-Suchzeichenfolge. Hier öffne ich die Tabelle direkt, ohne nach Variablen zu suchen. Schreiben Sie einfach die Suchbedingungen selbst.
sql="select * from Hotel where [City] = '" & City & "' "
Dimmen Sie das Datenoperationsobjekt von ors
Dim PageCounts'Um die Paging-Generierung zu implementieren, müssen Sie wissen, wie viele Seiten vorhanden sind
Setze oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'Suchen Sie die Tabelle, die das Hotel öffnet, das der City-Variablen entspricht
oRs.pagesize=10'Zehn Datensätze sind eine Seite
PageCounts=oRs.pagecount', um zu ermitteln, wie viele Seiten generiert werden sollen, verwenden Sie es in einer Schleife zum Generieren
Dim fs' definiert das FSO-Dateiobjekt
„Ordner dimmen“ ist der Name des Ordners, in dem statische Seiten gespeichert sind
„Dim Filestart“ definiert das Präfix für die Generierung von HTM-Dateien
Setze fs=Server.CreateObject("Scripting.FileSystemObject")
Dim ich
for i=1 to PageCounts' beginnt mit der Generierung von Seiten in einer Schleife, das heißt, es wird Paging generiert.
Seite=i
oRs.absolutepage=i'Seitennummer
rowcount=oRs.pagesize'Anzahl der Datensätze auf der aktuellen Seite
Ordner=server.mappath("CityHtml")
if (fs.FolderExists(folders)) then' ermittelt, ob der Ordner vorhanden ist
anders
„fs.CreateFolder(folders)“ erstellt den CityHtml-Ordner, falls dieser nicht vorhanden ist
Ende wenn
wenn i=1 dann
Filestart=HtmlStartName'Wenn es sich um die erste Seite handelt, definieren Sie den Dateinamen und übergeben Sie den Wertnamen. Beispiel: Beijing ist beijing.htm
anders
Filestart=HtmlStartName&i'Wenn die zweite Seite beispielsweise Peking + 1 ist, wenn es zwei Seiten gibt, ist i gleich 2, dann ist es Peking2.htm und so weiter ... (am Ende wird das Suffix .htm hinzugefügt)
Ende wenn
„Dim files“ definiert die Namensvariable der generierten Textdatei
Dimmen Sie die Variable „filez'define file path name“.
files=Filestart&".txt"'Name dieser Datei
filez=folders&""&"files' Textdateipfad
'Dateien löschen
„Dim checkfile“ prüft, ob die Textdatei bereits existiert. Wenn ja, löschen Sie sie
checkfile=server.mappath("CityHtml"&Filestart&".htm")'Überprüfen Sie, ob die HTM-Datei bereits existiert. Wenn ja, löschen Sie sie
if (fs.FileExists(checkfile)) then'Überprüfen Sie, ob die HTM-Datei bereits vorhanden ist. Wenn ja, löschen Sie sie
Dim df'define file object *Datei löschen mit*
Set df=fs.GetFile(checkfile)'definiert die zu löschende Datei
df.delete' Datei löschen
Ende, wenn'Ende des Urteils
Dim ts' definiert das Schreiben eines Dateiobjekts
set ts = fs.createtextfile(filez,true) 'Schreiben von Dateiinhalten aktivieren**Ich schreibe einfach den Hotelnamen und die statische Nummern-Paging-Anzeige in den Text**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' Danach ist der Inhalt der Hauptdatei zu generieren und Response.write zu verwenden
ts.write("<META http-equiv=Content-Type content=text/html; charset=gb2312>"&vbcrlf)
ts.write("<meta name=keywords content="&city&"hotel>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<TABLE WIDTH=760 cellspaced=0 cellpadding=0 align=center>"&vbcrlf&_
"<TR><TD width='100%'>"&vbcrlf)
'Paging-Ausgabe starten
„Ich werde hier nicht näher auf das Prinzip des digitalen Paging-Programms eingehen. Freunde, die es nicht verstehen, können es im Internet suchen.“
Aktuelle Seite der Seite abblenden
Dim Page2'Digitale Paging-Variable
Dimmen Sie die digitale Paginierungsvariable von s
Wenn Seite = 1, dann
ts.write („[Home] [Vorherige Seite]“)
anders
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[Home]</a> <a href="&HtmlStartName&Replace(page-1,1,"")&".htm"& " class=blue>Vorherige Seite</a> ")
Ende wenn
page2=(page-(page mod 10))/10
Wenn Seite2<1, dann Seite2=0
für s=Seite2*10-1 bis Seite2*10+10
wenn s>0 dann
wenn s=cint(page) dann
ts.write (" <font color='#000000'>["& s & "]</font>")
anders
wenn s=1 dann
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&.htm"&" class=blue>["& s &"]</a>")
anders
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
Ende wenn
Ende wenn
wenn s=ors.pagecount dann
Ausgang für
Ende wenn
Ende wenn
nächste
wenn cint(page)=ors.pagecount dann
ts.write („[nächste Seite] [letzte Seite]“)
anders
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[nächste Seite]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [ Letzte Seite]</a>")
Ende wenn
ts.write("</TD></TR>")
'Ende der Paging-Ausgabe
do while not ors.eof and rowcount>0 'Hotelnamen ausgeben
ts.write("<TR><TD width='100%'>"&oRs.Fields("Chinese_Name")&"</TD></TR>"&vbcrlf)
oRs.movenext
rowcount=rowcount-1'Wenn die Anzahl der Datensätze auf der Seite -1 beträgt, Schleife
ts.write("</Table></body></html>"&vbcrlf)
ts.close
set ts=nothing 'Objekt freigeben
„Dim EditFile“ definiert das Umschreiben von Dateivariablen
Set EditFile = fs.GetFile(filez)'Setzen Sie das Rewrite-Dateiobjekt
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'Die Textdatei in htm umschreiben
Die nächste Schleifengeneration endet (Paging-Generierung).
set EditFile=nothing 'Objekt freigeben
set fs=nothing'geben Sie das Objekt frei
if err.number<>0 then 'Generierte Fehler behandeln
Response.write(City&"Beim Aktualisieren von <A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">Neuaktualisierung</A> ist ein unbekannter Fehler aufgetreten")
anders
Response.Write(City&"Hotelaktualisierung abgeschlossen"&Now())
Ende wenn
%>