Kürzlich musste die Website eines Freundes eine statische Website generieren, aber manchmal treten beim Generieren statischer Daten Probleme auf. Wir haben einige Methoden zusammengestellt, die Sie entsprechend Ihren Website-Anforderungen auswählen können. 1. Zwei einfache Methoden zum Generieren statischer Homepages in ASP
Warum eine statische Homepage erstellen?
1. Wenn Ihre Homepage häufig die Datenbank liest, ist die Geschwindigkeit sehr langsam und beansprucht viele Serverressourcen. Natürlich ist die Verwendung einer statischen Seitenzugriffsgeschwindigkeit viel schneller
2. Leicht von Suchmaschinen gefunden
3. Bei Problemen mit dem Programm kann auf die Startseite zugegriffen werden.
4. Es gibt zu viele andere, denken Sie selbst darüber nach :)
Bewerbungsmethode:
Wenn Ihre Homepage index.asp ist, können Sie index.htm generieren (die Standardzugriffssequenz muss index.htm, index.asp sein). Auf diese Weise öffnet ein Besucher, wenn er Ihre Website zum ersten Mal besucht, index.htm. Sie können den Link auf der Homepage der Website in index.asp umwandeln, sodass index.asp angezeigt wird, wenn Sie von einer beliebigen Seite der Website aus auf den Link auf der Homepage klicken. Dies gewährleistet (schließlich) die Aktualität der Informationsaktualisierungen , index.htm muss jedes Mal manuell aktualisiert werden).
Methode eins:
Fügen Sie die Homepage-Datei direkt in das Formulartextfeld ein, übermitteln Sie den Homepage-Code als Daten und generieren Sie dann eine statische Seite.
Der Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
<%
'------------------------------------------------ - ---------
„Verwenden Sie die Formularübermittlung, um Code für eine statische Homepage zu generieren.“
„Stellen Sie sicher, dass Ihr Bereich FSO unterstützt und weniger Codeinhalte auf der Homepage enthält.“
'------------------------------------------------ - ---------
düsterer Inhalt
content=Trim(Request.Form(content))
wenn Inhalt<> dann
Rufen Sie makeindex() auf
Ende wenn
sub makeindex()
Setze Fso = Server.CreateObject(Scripting.FileSystemObject)
Filen=Server.MapPath(index.htm)
Setze Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Inhalt schreiben
Site_Config.Close
Setze Fso = Nichts
Response.Write(<script>alert('Homepage wurde erfolgreich generiert!')</script>)
Ende sub
%>
<form name=form1 method=post action=>
<Textbereichsname=Inhalt>
<!-- #i nclude file=index.asp -->
</textarea>
<br>
<Eingabetyp=Submit-Name=Submit-Wert=Submit>
</form>
Mangel:
1. Wenn die Homepage das Tag <@ ..> enthält, wird eine Fehlermeldung angezeigt.
2. Wenn der Homepage-Code zu lang ist, kann er nicht über ein Formular übermittelt werden (die Länge der Formulardaten ist begrenzt).
Lösung:
1. Entfernen Sie das <@ >-Tag in index.asp
2. Verwenden Sie eWebEditor zum Übermitteln und Unterstützen von Big Data (kann automatisch segmentiert werden).
Vorteil:
Inhalte können in Echtzeit geändert werden, während sie generiert werden.
Methode zwei:
Verwenden Sie XMLHTTP direkt, um den Code von index.asp abzurufen
Kopieren Sie den Codecode wie folgt:
<%
'------------------------------------------------ - ---------
'Verwenden Sie XMLHTTP, um statischen Homepage-Code zu generieren
„Curl ist Ihre Homepage-Adresse. Stellen Sie sicher, dass Ihr Bereich FSO unterstützt.“
'------------------------------------------------ - ---------
dim read,Curl,content
Curl=http://www.xx0123.com/index.asp
read=getHTTPage(Curl)
wenn gelesen<> dann
Inhalt=gelesen
Rufen Sie makeindex() auf
Ende wenn
sub makeindex()
Setze Fso = Server.CreateObject(Scripting.FileSystemObject)
Filen=Server.MapPath(index.htm)
Setze Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Inhalt schreiben
Site_Config.Close
Setze Fso = Nichts
Response.Write(<script>alert('Homepage wurde erfolgreich generiert!')</script>)
Ende sub
Funktion getHTTPPage(url)
dimmen Sie http
set http=Server.createobject(Microsoft.XMLHTTP)
Http.open GET,url,false
Http.send()
wenn Http.readystate<>4 dann
Exit-Funktion
Ende wenn
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
setze http=nichts
Wenn err.number<>0, dann err.Clear
Funktion beenden
Funktion BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Öffnen
objstream.Text schreiben
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Schließen
set objstream = nichts
Funktion beenden
%>
2. Vorlagentrennung und Batch-Generierung
Der zu ersetzende Inhalt in der Vorlagendatei ist in {...} eingeschlossen.
Aus Gründen der Einfachheit wurde der Fehlerbehandlungscode entfernt (der in „replace“ zu ersetzende Zeichenfolgenparameter darf kein Nullwert sein, und natürlich sollte fso auch eine Fehlerprüfung durchführen).
Kopieren Sie den Codecode wie folgt:
<%
'------------------------------------------------ - ------------------------------------------------- - -----------------
' Von: Kevin Fung http://www.yaotong.cn
' Autor: Kevin Fung Laggard ID: Kevin2008, bitte belassen Sie es beim Nachdruck so wie es ist
' Zeit: 05.07.2006 Laggard Forum erste Veröffentlichung
'------------------------------------------------ - ------------------------------------------------- - -------------------
Dim start 'Diese Variable ist die Datensatzposition, auf die der Zeiger zeigt, dynamisch über Parameter ermittelt
Dim Template 'Die Vorlagendatei liest diese Variable in einen String
Inhalt dimmen 'String-Variable ersetzt
Dim objConn 'Verbindungsobjekt
Dim ConnStr 'Verbindungszeichenfolge
Dimmen Sie die SQL-Abfrageanweisung
Dim cnt:cnt = 1 'Initialisieren Sie den Schleifenzähler dieses Zyklus
start = request(start) 'Ermittelt die Startposition des aktuellen Rundenzeigers
If IsNumeric(start) Then start = CLng(start) Else start=1
Wenn start=0, dann start = 1 'Wenn start
ConnStr = Provider = Microsoft.Jet.OLEDB.4.0;Data Source = & Server.MapPath(DataBase.mdb)
sql = select * from table_name
Set objConn = Server.CreateObject(ADODB.Connection)
objConn.Open ConnStr
set rs = Server.CreateObject(ADODB.Recordset)
rs.open sql,objConn,1,1 'Öffnen Sie den Datensatz
rs.AbsolutePosition = start 'Der kritischste Schritt besteht darin, den Zeiger auf den Start zu zeigen, der dynamisch über Parameter ermittelt wird
Template = getTemplate(Server.MapPath(template.html))' template.html ist eine Vorlagendatei, und die Zeichenfolge wird über die Funktion getTemplate gelesen. Der zu ersetzende Inhalt in der Vorlagendatei ist in {...} eingeschlossen.
Während Nicht rs.eof Und cnt<= 500 '500 dient dazu, die Anzahl der Zyklen für eine Anforderung zum Generieren einer Seite festzulegen. Wenn sie zu hoch ist, tritt ein Timeout-Fehler auf Rekordsätze.
content = Replacement(Template,{filed_name_1},rs(filed_name_1)) 'Vorlageninhalt durch Feldwert ersetzen
content = Ersetzen(content,{filed_name_2},rs(filed_name_2))
...
content = Ersetzen(content,{filed_name_n},rs(filed_name_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'HTML-Dokument durch Ersetzen der Vorlagenzeichenfolge generieren. htmfiles ist das Verzeichnis, in dem statische Dateien gespeichert werden.
cnt = cnt + 1 'Zähler plus 1
start = start + 1 'Zeigervariable erhöht sich
rs.movenext
wenden
Wenn nicht, rs.eof, dann 'Machen Sie die nächste Anfragerunde durch Aktualisieren und übergeben Sie die Zeigervariable start an die nächste Runde.'
Response.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
Anders
Die Response.write-Generierung der HTML-Datei ist abgeschlossen!
Ende wenn
rs.Close()
Setrs=Nichts
objConn.Close()
Setze objConn = Nothing
Funktion getTemplate(template)‘ Funktion zum Lesen der Vorlage, Rückgabe einer Zeichenfolge, Vorlage ist der Dateiname
Dim fso,f
set fso=CreateObject(Scripting.FileSystemObject)
set f = fso.OpenTextFile(template)
getTemplate=f.ReadAll
f.schließen
setze f=nichts
set fso=Nichts
Funktion beenden
„Sub genHtml(content,filename)“ schreibt den ersetzten Inhalt in das HTML-Dokument, content ist die ersetzte Zeichenfolge und filename ist der generierte Dateiname.
Dim fso,f
Setze fso = Server.CreateObject(Scripting.FileSystemObject)
Setze f = fso.CreateTextFile(filename,true)'Wenn der Dateiname wiederholt wird, wird die alte Datei überschrieben
f. Inhalte schreiben
f.Schließen
Setze f = Nichts
set fso=Nichts
Sub beenden
%>