Recommandé: à propos de la séparation du code et de la page ASP Afin d'éviter les difficultés de maintenance causées par le malentendu du code TML du programme ASP, cet article présente une méthode pour utiliser des modèles pour séparer les programmes et les pages pour faciliter la programmation. Lorsque vous utilisez ASP pour créer un site, un fichier ASP apparaît souvent, le code du programme et HTM
Il y a de nombreux avantages à convertir des pages dynamiques pour générer des fichiers HTML statiques, tels que la génération de pages Web HTML est propice à être incluse par les moteurs de recherche (en particulier pour les pages qui acceptent les paramètres dynamiques). Lors de l'accès à la réception, il est séparé de l'accès aux données, allégeant la pression sur l'accès à la base de données et accélérant l'ouverture des pages Web.
Bien sûr, tout a ses avantages et ses inconvénients. La génération de pages HTML consomme de manière invisible beaucoup d'espace disque pour stocker ces fichiers statiques. En plus de lire et d'écrire la base de données pendant le processus d'édition, vous devez également lire et écrire le disque du serveur. Les modifications des styles de page doivent régénérer tous les fichiers HTML, etc.
Par exemple, de nombreux moteurs de recherche peuvent soumettre une liste des adresses de la page de site Web. L'inclusion de fichiers dynamiques n'est plus un problème (tel que Google Sitemap). Nous devons mesurer et saisir les gains et les pertes par nous-mêmes, mais quoi qu'il arrive, nous devons encore savoir comment opérer. Ici, je citerai les articles des autres pour expliquer plusieurs idées de génération courantes pour votre référence.
1. L'exemple suivant utilise directement FSO pour écrire du code HTML dans un fichier, puis générer un format de fichier .html. C'est le plus primitif. L'avantage est qu'il est simple, et l'inconvénient est que la modification de la page est gênante. L'endroit que j'utilise habituellement est de l'utiliser pour générer l'ensemble du fichier de paramètres du site. (Habituellement, le site Web tel que le titre, le nom, etc. est stocké dans la base de données. Je génère Config.asp pour enregistrer ces appels de variables pour éviter un accès fréquent à la base de données)
| Ce qui suit est le contenu cité: <% filename = test.htm Si demande (corps) <> alors set fso = server.createObject (scripting.fileSystemObject) Définir htmlwrite = fso.CreateTextFile (server.mappath (& filename &)) htmlwrite.write < html> < tête> < title> & request.form (title) & < / title> < / tête> htmlwrite.write < Body> Titre de sortie Contenu du titre: & request.form (title) & < Br /> Sortie du corps du corps: & request.form (body) & < / body> < / html> htmlwrite.close set fout = rien Définir FSO = rien terminer si %> < Nom du formulaire = Méthode du formulaire = post-action => < Nom de l'entrée = Valeur du titre = Titre Taille = 26> <br> < TextArea name = corps> corps < / textarea> <br> <br> < Type d'entrée = soumettre name = soumettre la valeur = générer html> < / Form> |
2. Cependant, il est très gênant de générer un fichier HTML selon la méthode ci-dessus. La deuxième méthode consiste à utiliser la technologie du modèle pour remplacer la valeur du code spécial dans le modèle avec la valeur acceptée à partir du champ de formulaire ou de base de données, de compléter la fonction de modèle et de générer des fichiers HTML avec tous les codes de modèle qui ont finalement été remplacés. Cette technologie est utilisée plus souvent et la plupart des CMS utilisent cette méthode.
| Ce qui suit est le contenu cité: Template.htm '// Fichier de modèle < html> < tête> < Titre> $ Title $ par Cuoxin.com < / Title> < / tête> < corps> $ body $ < / corps> < / html> TestTemplate.asp '// Générer HTML <% DIM FSO, HTMLWRITE Strtitle Dim, Stracent, Strout '// Créer un objet Système de fichiers Set fso = server.createObject (scripting.fileSystemObject) '// Ouvrez le fichier de modèle Web et lisez le contenu du modèle SET HTMLWRITE = FSO.OPENEXTFILE (server.mappath (template.htm)) Stout = F.Readall htmlwrite.close strtitle = le titre de la page Web générée strContent = le contenu de la page Web générée '// Remplacez les balises du modèle par un contenu réel Strout = remplacer (Strout, $ title $, strtitle) Strout = Remplacer (Strout, $ body $, strContent) '// Créer la page statique à générer SET HTMLWRITE = FSO.CREATETEXTFILE (server.mappath (test.htm), true) '// Écrivez du contenu sur la page Web htmlwrite.writeline Stout htmlwrite.close Response.Write La page statique a été générée avec succès! '// Libérez l'objet Système de fichiers définir htmlwrite = rien Définir FSO = rien %> |
3. La troisième méthode consiste à utiliser XMLHTTP pour obtenir le contenu HTML généré par la page dynamique, puis utiliser Adodb.Stream ou Scripting.FileSystemObject pour l'enregistrer dans un fichier HTML. Trouvez un morceau de code pour générer du HTML pour XMLHTTP.
| Ce qui suit est le contenu cité: <% 'Fonctions communes '1. Entrez l'adresse de la page Web de la destination URL et la valeur de retour Gethttppage est le code HTML de la page Web de destination fonction gethttppage (URL) DIM HTTP Définir http = server.createObject (msxml2.xmlhttp) Http.open get, url, false Http.send () Si http.readystate <> 4 alors fonction de sortie terminer si GethtTppage = ByTestObstr (Http.ResponseBody, GB2312) définir http = rien Si err.number <> 0 alors err.clear fonction finale '2. Convertir Lanma, appelez directement une page Web avec des caractères chinois avec XMLHTTP, vous obtiendrez Lanma, qui peut être converti via le composant ADODB.stream. Fonction bytestobstr (corps, cset) objstream sombre Définir ObjStream = Server.CreateObject (Adodb.Stream) objstream.type = 1 objstream.mode = 3 objstream.open OBJSTREAM.WRITE CORPS objstream.position = 0 objstream.type = 2 objstream.charset = cset ByTestObstr = objstream.readText objstream.close définir objstream = rien Fonction finale txtul = server.mappath (../ index.asp) stext = gethttppage (txtul) Set fileObject = server.createObject (scripting.filesystemObject) nom de fichier = .. / index.htm Set openFile = fileObject.OpenTExtFile (server.mappath (nom de fichier), 2, true) 'true est créé par lui-même s'il n'existe pas openfile.writeline (stext) Set openfile = rien %> < Script> alerte (la génération de pages Web statique est terminée); History.back (); < / script> |
Résumé, ces trois méthodes sont les méthodes les plus couramment utilisées pour générer des fichiers HTML. Je préfère utiliser la troisième méthode car les modifications de la page sont très pratiques. Même si la page dynamique change, c'est bien. Utilisez simplement XMLHTTP pour le lire et le générer à nouveau.
Partager: conception de compatibilité du cache pour les applications Web Après avoir passé le proxy, puisque une couche intermédiaire est ajoutée entre le client et le service, le serveur ne peut pas obtenir directement l'IP du client et l'application côté serveur ne peut pas revenir directement au client via l'adresse de transfert. Cependant, dans les informations d'en-tête HTTP des demandes de transfert, HTTP_X est ajouté