Récemment, le site Web d'un ami a besoin de générer un site Web statique, mais il y aura parfois des problèmes lors de la génération statique. Nous avons compilé quelques méthodes et vous pouvez choisir en fonction des besoins de votre site Web. 1. Deux méthodes simples pour générer des pages d'accueil statiques dans ASP
Pourquoi générer une page d'accueil statique ?
1. Si votre page d'accueil lit beaucoup la base de données, la vitesse est très lente et consomme beaucoup de ressources du serveur. Bien sûr, utiliser la vitesse d’accès aux pages statiques est beaucoup plus rapide
2. Facilement trouvé par les moteurs de recherche
3. En cas de problème avec le programme, la page d'accueil est accessible.
4. Il y en a trop d'autres, pensez-y vous-même :)
Méthode de candidature :
Si votre page d'accueil est index.asp, vous pouvez générer index.htm (la séquence d'accès par défaut doit être index.htm, index.asp). De cette façon, lorsqu'un visiteur visite votre site Web pour la première fois, il ouvre index.htm. Vous pouvez créer le lien sur la page d'accueil du site Web en index.asp, de sorte que lorsque vous cliquez sur le lien sur la page d'accueil à partir de n'importe quelle page du site Web, index.asp apparaîtra. Cela garantit la rapidité des mises à jour des informations (après tout). , index.htm doit être mis à jour manuellement à chaque fois).
Première méthode :
Incluez directement le fichier de la page d'accueil dans la zone de texte du formulaire, soumettez le code de la page d'accueil sous forme de données, puis générez une page statique.
Le code est le suivant :
Copiez le code comme suit :
<%
'------------------------------------------------ - ---------
'Utiliser la soumission du formulaire pour générer du code pour la page d'accueil statique
'Assurez-vous que votre espace prend en charge FSO et qu'il contient moins de code sur la page d'accueil
'------------------------------------------------ - ---------
contenu sombre
content=Trim(Request.Form(content))
si contenu<> alors
appelez makeindex()
finir si
sous makeindex()
Définir Fso = Server.CreateObject (Scripting.FileSystemObject)
Fichier=Serveur.MapPath(index.htm)
Définir Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Écrire le contenu
Site_Config.Fermer
Définir Fso = Rien
Response.Write(<script>alert('La page d'accueil a été générée avec succès !')</script>)
fin du sous
%>
<form name=form1 method=post action=>
<nom de la zone de texte = contenu>
<!-- #i nclude file=index.asp -->
</textarea>
<br>
<type d'entrée=nom de soumission=Valeur de soumission=Soumettre>
</form>
défaut:
1. Si la page d'accueil inclut la balise <@ ..>, une erreur s'affichera.
2. Si le code de la page d'accueil est trop long, il ne peut pas être soumis à l'aide d'un formulaire (il existe une certaine limite quant à la longueur des données du formulaire).
Solution:
1. Supprimez la balise <@ > dans index.asp
2. Utilisez eWebEditor pour soumettre et prendre en charge le Big Data (peut être automatiquement segmenté)
avantage:
Le contenu peut être modifié en temps réel au fur et à mesure de sa génération.
Deuxième méthode :
Utilisez directement XMLHTTP pour obtenir le code de index.asp
Copiez le code comme suit :
<%
'------------------------------------------------ - ---------
'Utiliser XMLHTTP pour générer du code de page d'accueil statique
'Curl est l'adresse de votre page d'accueil, assurez-vous que votre espace prend en charge FSO
'------------------------------------------------ - ---------
lecture faible, Curl, contenu
Curl=http://www.xx0123.com/index.asp
read=getHTTPage(Curl)
si lu<> alors
contenu = lire
appelez makeindex()
finir si
sous makeindex()
Définir Fso = Server.CreateObject (Scripting.FileSystemObject)
Fichier=Serveur.MapPath(index.htm)
Définir Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Écrire le contenu
Site_Config.Fermer
Définir Fso = Rien
Response.Write(<script>alert('La page d'accueil a été générée avec succès !')</script>)
fin du sous
Fonction getHTTPPage(url)
atténué http
définir http=Serveur.createobject(Microsoft.XMLHTTP)
Http.open GET,url,false
Http.envoyer()
si Http.readystate<>4 alors
fonction de sortie
finir si
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
définir http = rien
si err.number<>0 alors err.Clear
Fin de fonction
Fonction BytesToBstr(corps,Cset)
objstream obscur
définir objstream = Server.CreateObject (adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Ouvrir
objstream.Écrire le corps
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Fermer
définir objstream = rien
Fonction de fin
%>
2. Séparation des modèles et génération de lots
Le contenu à remplacer dans le fichier modèle est entouré de {...}
Dans un souci de simplicité, le code de gestion des erreurs a été supprimé (le paramètre de chaîne à remplacer lors du remplacement ne peut pas être une valeur nulle, et bien sûr, fso doit également effectuer une vérification des erreurs).
Copiez le code comme suit :
<%
'------------------------------------------------ - ------------------------------------------------- - -----------------
' De : Kevin Fung http://www.yaotong.cn
' Auteur : Kevin Fung Laggard ID : kevin2008, veuillez le conserver tel quel lors de la réimpression
' Heure : 05/07/2006 Première version du Laggard Forum
'------------------------------------------------ - ------------------------------------------------- - -------------------
Dim start 'Cette variable est la position du jeu d'enregistrements vers laquelle pointera le pointeur, obtenue dynamiquement grâce aux paramètres
Dim Template 'Le fichier modèle lira cette variable dans une chaîne
Dim content 'Variable de chaîne remplacée
Dim objConn 'Objet de connexion
Dim ConnStr 'Chaîne de connexion
Instruction de requête Dim SQL
Dim cnt:cnt = 1 'Initialiser le compteur de boucle de ce cycle
start = request(start) 'Obtenir la position de départ du pointeur de tour actuel
Si IsNumeric(start) Alors start = CLng(start) Sinon start=1
Si start=0 Alors start = 1 'Si start
ConnStr = Fournisseur = Microsoft.Jet.OLEDB.4.0; Source de données = & Server.MapPath (DataBase.mdb)
sql = sélectionner * depuis nom_table
Définir objConn = Server.CreateObject (ADODB.Connection)
objConn.Open ConnStr
définir rs = Server.CreateObject (ADODB.Recordset)
rs.open sql,objConn,1,1 'Ouvrir l'ensemble de données
rs.AbsolutePosition = start 'L'étape la plus critique consiste à pointer le pointeur sur start, ce qui est obtenu dynamiquement via les paramètres
Template = getTemplate(Server.MapPath(template.html))' template.html est un fichier modèle et la chaîne est lue via la fonction getTemplate. Le contenu à remplacer dans le fichier modèle est entouré de {...}.
Tandis que Not rs.eof Et cnt<= 500 '500 consiste à définir le nombre de cycles pour qu'une requête génère une page, modifiez-la en fonction de la situation réelle. S'il est trop élevé, une erreur de délai d'attente se produira lorsqu'il y en aura plusieurs. ensembles d'enregistrements.
content = Replace(Template,{filed_name_1},rs(filed_name_1)) 'Remplacer le contenu du modèle par la valeur du champ
content = Remplacer(content,{filed_name_2},rs(filed_name_2))
...
content = Remplacer(content,{filed_name_n},rs(filed_name_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'Générer un document HTML en remplaçant la chaîne du modèle. htmfiles est le répertoire dans lequel les fichiers statiques sont stockés. Veuillez le créer manuellement.
cnt = cnt + 1 'Compteur plus 1
start = start + 1 'Incréments variables du pointeur
rs.movenext
wend
If Not rs.eof Then 'Effectuez la prochaine série de requêtes en actualisant et en passant la variable de pointeur au début de la prochaine série
réponse.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
Autre
La génération de réponse.write du fichier HTML est terminée !
Terminer si
rs.Fermer()
Setrs=Rien
objConn.Close()
Définir objConn = Rien
Fonction getTemplate(template)' pour lire le modèle, renvoyer une chaîne, le modèle est le nom du fichier
Faible fso,f
définir fso = CreateObject (Scripting.FileSystemObject)
set f = fso.OpenTextFile (modèle)
getTemplate=f.ReadAll
f.fermer
définir f = rien
set fso=Rien
Fonction de fin
Sub genHtml(content,filename)' écrit le contenu remplacé dans le document HTML, le contenu est la chaîne remplacée et le nom de fichier est le nom du fichier généré.
Faible fso,f
Définir fso = Server.CreateObject (Scripting.FileSystemObject)
Set f = fso.CreateTextFile(filename,true)'Si le nom du fichier est répété, l'ancien fichier sera écrasé
f.Écrire du contenu
f.Fermer
Définir f = Rien
set fso=Rien
Fin du sous-marin
%>