La page 1 utilise Msxml2.ServerXMLHTTP pour capturer le contenu Web. La page 2 utilise ADODB.Stream pour écrire le contenu capturé dans un fichier. La page 3 donne un exemple spécifique. Toute personne connaissant asp doit savoir que asp est un langage de script qui interprète et exécute. , et l'efficacité d'exécution des programmes de script est souvent très faible. Si le nombre de visites sur le site est relativement élevé, le serveur consommera beaucoup de ressources. Le résultat est que la vitesse d'accès au site diminue rapidement. La solution est d'optimiser. le programme pour améliorer l'efficacité d'exécution. , et une autre méthode consiste à générer régulièrement des fichiers HTML statiques pour les pages très visitées du site Web, ce qui peut résoudre très efficacement le problème de vitesse d'accès. Bien sûr, le principe est que la vitesse de votre serveur n'est pas très lente. , sinon cela ne fonctionnera pas quoi qu'il arrive. Cela n'a aucun effet. Ci-dessous, je présente une méthode d'utilisation du composant Msxml2.ServerXMLHTTP pour récupérer la page Web statique que vous souhaitez générer, puis utiliser fso ou ado pour l'écrire. A noter que les exemples de cet article utilisent tous le codage utf -8, s'il est changé en gb2312, les attributs correspondants doivent être modifiés. Donnez d'abord la fonction suivante :
<!--'Pour les questions connexes, veuillez visiter http://www.downcodes.com
Fonction GetURL(URL)
'Télécharger la fonction principale
const TimeInterval = 60
'Définir l'intervalle de temps
'Si le temps de téléchargement est très lent, écrivez-le sous la forme 120 secondes
'Réponse.LCID=2052
const lResolve=6
'Délai d'expiration du nom de domaine de résolution, secondes
const lConnect=6
'Délai d'expiration du site de connexion, secondes
const lEnvoyer=6
'Délai d'expiration de la demande de données d'envoi, secondes
const lReceive=40
'Délai d'expiration des données de téléchargement, secondes
en cas d'erreur reprendre Suivant
Faible http
Définir http = Server.CreateObject("Msxml2.ServerXMLHTTP")
http.setTimeouts lResolve*1000,lConnect*1000,lSend*1000,lReceive*1000
http.Ouvrez "GET", URL, False
http.Envoyer
Sélectionnez le cas http.readyState
Cas 0
GetURL="Échec de l'initialisation de l'objet"
Err.Effacer
définir http = rien
Fonction de sortie
Cas 1
GetURL="Délai d'expiration de l'analyse du nom de domaine/Délai d'expiration du site de connexion"
Err.Effacer
définir http = rien
Fonction de sortie
Cas 2
GetURL="Le délai de demande de données a expiré. Le serveur est-il défectueux ?"
Err.Effacer
définir http = rien
Fonction de sortie
Cas 3
GetURL="Délai d'expiration du téléchargement des données/délai d'attente des commentaires"
Err.Effacer
définir http = rien
Fonction de sortie
Cas 4
'Téléchargement réussi
Fin de la sélection
Si http.status<>200 alors
GetURL="Échec du téléchargement"&Err.description
Err.Effacer
définir http = rien
Fonction de sortie
FIN SI
Si http.status="200" alors
GetURL=http.ResponseText
'GetURL=Enregistrer le fichier()
Fin si
définir http = rien
Fonction de fin
-->
La fonction principale est de capturer le contenu du fichier de page Web du paramètre d'adresse. Utilisez la méthode varia=GetURL(" http://www.downcodes.com "). comme http://localhost/default.asp et utilisez cette fonction. Il convient de noter que l'attribut Response.LCID=2052 n'est pas pris en charge sous Windows Server 2000, mais ce n'est pas un gros problème et peut être utilisé normalement tant que il est commenté ! Il existe également des attributs de délai d'attente qui peuvent être personnalisés selon les besoins, mais veillez à ne pas définir le délai trop court, sinon si le fichier est volumineux ou si la vitesse d'accès à l'adresse est lente, l'exploration peut échouer ! Nous devons utiliser cette fonction pour explorer le contenu du fichier de page Web que vous souhaitez générer. Stockez le contenu dans une variable et attendez qu'il soit écrit dans le fichier.
Cette classe est donnée ci-dessous, qui sert à écrire le contenu qui vient d'être capturé par la fonction dans le fichier correspondant, et le tour est joué. Générez directement la page web que vous souhaitez générer, c'est très pratique et ne nécessite pas de modification ! fichier original !
Classe Htmlmaker
'Veuillez poser des questions connexes Voir http://www.downcodes.com
'/************************
'/Instructions de configuration des propriétés
'/foldename "nom du dossier"
'/ S'il n'est pas défini, un nom de dossier au format d'heure [année, mois, jour] sera automatiquement généré
'/ Nom de fichier "Nom de fichier" (y compris les suffixes et les suffixes)
'/ S'il n'est pas défini, un nom de fichier au format d'heure [heures, minutes, secondes] sera automatiquement généré, avec le suffixe .html
'/ Htmlstr "Contenu du code généré"
'/************************
Private HtmlFolder,HtmlFilename,HtmlContent
Propriété publique letfoldename(str)
HtmlFolder=str
Propriété de fin
Propriété publique let Filename(str)
HtmlFilename=str
Propriété finale
Propriété publique let Htmlstr(str)
HtmlContent=str
Propriété finale
'/************************
'/Fonction de date de conversion de nom de fichier
'/************************
Fonction privée Datename1 (timestr)
dim s_année, s_mois, s_jour
s_year=année(timestr)
si len(s_year)=2 alors s_year="20"&s_year
s_mois=mois(timestr)
si s_mois <10 alors s_mois="0"&s_mois
s_day=jour(timestr)
si s_day<10 alors s_day="0"&s_day
Datename1=s_année & s_mois & s_jour
Fonction de fin
Fonction privée Datename2 (timestr)
dim s_hour,s_minute,s_ss
s_hour=heure(timestr)
si s_hour<10 alors s_hour="0"&s_hour
s_minute=minute(timestr)
si s_minute<10 alors s_minute="0"&s_minute
s_ss=seconde(timestr)
si s_ss<10 alors s_ss="0"&s_ss
Datename2 = s_heure & s_minute & s_ss
Fin de la fonction
'/*************************
'/initialisation
'/************************
Sous-classe_initialize() privée
HtmlFolder=Datename1 (maintenant)
HtmlFilename=Datename2 (maintenant)&".html"
HTMLC
Fin du sous-
sous-privé class_terminate()
Fin du sous-marin
'/************************
'/Génération de fichier HTML
'/*********************
Sous-public Htmlmake()
'En cas d'erreur, reprendre ensuite
chemin de fichier faible, fso, fout
chemin de fichier = Dossier HTML&"/"&Nom de fichier HTML
Définir fso = Server.CreateObject("Scripting.FileSystemObject")
Si fso.FolderExists(Server.MapPath(HtmlFolder)) Alors
Autre
fso.CreateFolder(Server.MapPath(HtmlFolder))
Fin si
' Définir fout = fso.CreateTextFile(Server.MapPath(filepath),true)
' fout.WriteLine HtmlContent
'fou.close
objFSO, adTypeText, adSaveCreateOverWrite, Charsett, objAdoStream
Charsett = "utf-8"
set objAdoStream = Server.CreateObject("ADODB.Stream")
adTypeText = 2
adSaveCreateOverWrite = 2
objAdoStream.Type = adTypeText
objAdoStream.Open
objAdoStream.Charset = Charset
objAdoStream.WriteText(HtmlContent)
objAdoStream.SaveToFile Server.MapPath(chemin du fichier),2
objAdoStream.Fermer
Fin du sous-titre
'/************************
'/Suppression du fichier HTML
'/************************
Sous-Htmldel public()
chemin de fichier faible, fso
chemin de fichier = Dossier HTML&"/"&Nom de fichier HTML
Définir fso = CreateObject("Scripting.FileSystemObject")
si fso.FileExists(Server.MapPath(filepath)) alors
fso.DeleteFile(Server.mappath(chemin du fichier))
finir si
Définir fso = rien
End Sub
End classe
Afin de permettre à tout le monde de mieux apprendre, donnons un exemple précis :
Nous avons une adresse de site Web http://www.downcodes.com/
Nous souhaitons d'abord générer un fichier html statique à partir de sa page d'accueil, qui est default.asp
. créez-le. Fichier : makeindex.asp
<!--#include file="function_class.asp"-->
<%
faible indexhtmlstr
indexhtmlstr=GetURL(" http://www.downcodes.com/default.asp ")
dim nom de fichier d'index
nomfichierindex="index.htm"
faible actionstat
si len(indexhtmlstr) <200 alors
Acti&indexfilename&"erreur "&indexhtmlstr&" rencontrée"
autre
tamiser mon html
set myhtml= nouveau Htmlmaker
monhtml.foldename = "../.."
monhtml.Filename = nomfichierindex
monhtml.Htmldel
monhtml.Htmlstr = indexhtmlstr
monhtml.Htmlmake
définir monhtml = rien
acti&indexfilename&"fichier"
finir si
réponse.write actionstat
%>
Le contenu du fichier function_class.asp comprend principalement les fonctions données ci-dessus et la classe qui génère le fichier !
Exécutez makeindex.asp pour générer le fichier htm !