C'est la première fois que j'écris un article dans CSDN. Mon talent littéraire et mes connaissances théoriques sont limités. J'apprécie les corrections si j'écris incorrectement. En fait, il existe déjà de nombreux articles sur la génération HTML ASP sur Internet. Une méthode est la méthode de génération ASP+XML, bien qu'un avantage soit que vous pouvez référencer directement le code source original de la page à générer sans écrire de modèle avec. un programme, mais j'ai testé cette méthode à cette époque, j'ai trouvé que sa stabilité était mauvaise et que ses exigences en matière de vitesse réseau étaient élevées (bien sûr, elle n'était pas sur le serveur). Surtout dans l'espace virtuel, des erreurs sont souvent signalées. Cela peut être dû à un traitement de code insuffisant dans cette méthode. Pour faire court, cet article utilise une autre méthode couramment utilisée, ASP+FSO. Le framework est également utilisé ici pour réduire le temps de génération lors du traitement d'un grand nombre de pagination. Cette méthode est destinée à certains fichiers ASP avec de gros volumes de pages.
Ici, je cite un exemple simple : (commerce électronique de voyages) les pages statiques des applications hôtelières (htm) dans les grandes villes du pays sont affichées en pagination
1. Environnement du système d'application : win2000+ASP+MSSQL/ACCESS (la base de données n'est fondamentalement pas pertinente) +iis5.0
2.1 listes de villes (CityHtml) : comprenant trois champs définissant des noms HTML statiques (ID de ville (numéro automatique), nom de ville (CityName tel que Pékin), nom de préfixe HTML généré (HtmlStartName tel que Pékin))
3.1 listes d'hôtels nationales (Hôtel) : Ici, je crée uniquement trois champs (ID de l'hôtel (numéro automatique), nom de la ville (City), nom de l'hôtel (HotelName)) pour faciliter la référence à l'instance.
4.1 Pages ASP (ToHtm.asp) (utilisées pour générer du htm)
5.1 Pages de cadre de boucle (IframeToHtm.asp), cadre d'application pour générer du htm par lots
Voici le code source de deux pages de
cadre de boucle pour la génération de pages par lots : IFrameToHtm. .asp
< !--#include file="conn.asp"-->'Se connecter à la base de données
<%
dimrs,sql,j
set rs=Server.CreateObject("adodb.recordset")
sql="select * from CityHtml"'Ouvrir la liste des villes à travers le pays
rs.open sql, conn, 1,1
faire jusqu'à ce que rs.eof 'boucle à travers les grandes villes%>
<!--Le framework d'application suivant ouvre la page générée par ToHtml-->
<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
loop%>
Générer la page du programme : ToHtm.asp J'écris probablement un commentaire dans le code source **
<!--#include file="conn.asp"-->'fichier de connexion aux données
<%
En cas d'erreur, reprise du traitement de tolérance aux pannes suivant
La définition de Dim City amène la ville à générer la page
City=Request.Querystring("City")' Obtient la valeur de l'hôtel urbain générée et transmise par le framework, qui sera introduit plus tard
HtmlStartName=Request.Querystring("HtmlStartName")'Obtenir le préfixe du nom du fichier HTML généré
Chaîne de recherche Dim sql, ici je vais ouvrir la table directement sans rechercher de variables, écrivez simplement les conditions de recherche vous-même.
sql="select * from Hotel où [Ville] = '" & Ville & "' "
Objet d'opération de données de Dim oRs
Dim PageCounts'Pour implémenter la génération de pagination, vous devez savoir combien de pages il y a
Définir oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'Trouver la table qui ouvre l'hôtel égale à la variable City
oRs.pagesize=10'Dix enregistrements forment une seule page
PageCounts=oRs.pagecount' pour obtenir le nombre de pages à générer, utilisez-le dans une boucle pour générer
Dim fs 'définit l'objet fichier fso
Dim dossiers' le nom du dossier où les pages statiques sont stockées
Dim Filestart' définit le préfixe pour générer des fichiers htm
Définir fs=Server.CreateObject("Scripting.FileSystemObject")
Faible je
pour i=1 to PageCounts' commence à générer des pages dans une boucle, c'est-à-dire que la pagination est générée.
page = je
oRs.absolutepage=i'numéro de page
rowcount=oRs.pagesize'Nombre d'enregistrements sur la page actuelle
dossiers=server.mappath("CityHtml")
if (fs.FolderExists(folders)) then' détermine si le dossier existe
autre
fs.CreateFolder(folders)' crée le dossier CityHtml s'il n'existe pas
finir si
si je = 1 alors
Filestart=HtmlStartName'S'il s'agit de la première page, définissez le nom du fichier et transmettez le nom de la valeur. Par exemple, beijing est beijing.htm.
autre
Filestart=HtmlStartName&i'Si la deuxième page est beijing+1, par exemple, s'il y a deux pages, i vaut 2, alors c'est beijing2.htm et ainsi de suite...(le suffixe .htm est ajouté à la fin)
finir si
Dim files' définit la variable de nom de fichier texte généré
Dim filez'define variable de nom de chemin de fichier
files=Filestart&".txt"'nom de ce fichier
filez=folders&""&"chemin du fichier texte des fichiers
'Supprimer les fichiers
Dim checkfile'vérifie si le fichier texte existe déjà, si c'est le cas supprime-le
checkfile=server.mappath("CityHtml"&Filestart&".htm")'Vérifiez si le fichier htm existe déjà, si c'est le cas, supprimez-le
if (fs.FileExists(checkfile)) then'Vérifiez si le fichier htm existe déjà, si c'est le cas, supprimez-le
Dim df'define file object *supprimer le fichier en utilisant*
Set df=fs.GetFile(checkfile)'définit le fichier à supprimer
df.delete' supprimer le fichier
fin si'fin du jugement
Dim ts' définit l'écriture d'un objet fichier
set ts = fs.createtextfile(filez,true) 'Activer l'écriture du contenu du fichier**J'écris simplement le nom de l'hôtel et l'affichage du numéro statique dans le texte**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' Après cela, le contenu du fichier principal doit être généré et utilisé Response.write
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 Cellpacing=0 cellpadding=0 align=center>"&vbcrlf&_
"<TR><TD width='100%'>"&vbcrlf)
'Démarrer la sortie de pagination
« Je n'entrerai pas ici dans les détails du principe du programme de radiomessagerie numérique. Les amis qui ne comprennent pas peuvent le rechercher sur Internet.
Dim la page actuelle de la page
Dim Page2'Variable de pagination numérique
Variable de pagination numérique des Dim
si page=1 alors
ts.write (" [Accueil] [Page précédente] ")
autre
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[Accueil]</a> <a href="&HtmlStartName&Replace(page-1,1,"")&".htm"& " class=blue>Page précédente</a> ")
finir si
page2=(page-(page mod 10))/10
si page2<1 alors page2=0
pour s=page2*10-1 à page2*10+10
si s>0 alors
si s=cint(page) alors
ts.write (" <font color='#000000'>["& s & "]</font>")
autre
si s=1 alors
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&".htm"&" class=blue>["& s &"]</a>")
autre
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
finir si
finir si
si s=ors.pagecount alors
sortie pour
finir si
finir si
suivant
si cint(page)=ors.pagecount alors
ts.write ("[page suivante] [dernière page]")
autre
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[page suivante]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [ Dernière page]</a>")
finir si
ts.write("</TD></TR>")
'Fin de la sortie de pagination
do while not ors.eof and rowcount>0 'Nom de l'hôtel en sortie
ts.write("<TR><TD width='100%'>"&oRs.Fields("Chinese_Name")&"</TD></TR>"&vbcrlf)
oRs.movenext
rowcount=rowcount-1'Lorsque le nombre d'enregistrements sur la page est de -1 boucle
ts.write("</Table></body></html>"&vbcrlf)
ts.fermer
set ts=rien 'Libérer l'objet
Dim EditFile' définit la réécriture des variables de fichier
Set EditFile = fs.GetFile(filez)'Définir l'objet de fichier de réécriture
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'Réécrire le fichier texte en htm
la génération de boucle suivante se termine (génération de pagination)
set EditFile=nothing 'Libérer l'objet
set fs=rien'libérer l'objet
if err.number<>0 then 'Gérer les erreurs générées
Response.write(City&"Une erreur inconnue s'est produite lors de la mise à jour de <A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">Re-update</A>")
autre
Response.Write(Ville&"Mise à jour de l'hôtel terminée"&Maintenant())
finir si
%>