ASP网站生成静态html页面技术小结

生成HTML方法主要步骤只有两个:

一、获取要生成的html文件的内容 
二、将获取的html文件内容保存为html文件

我在这里主要说明的只是第一步:如何获取要生成的html文件的内容: 
目前常用获取html文件的内容的方法有以下几种:

1、

str="<html标记>内容</html标记>" 
str=str&"<html标记>内容</html标记><html标记>数据库读取内容....</html标记>....." 
这种方法与是在脚本内写要生成的html内容,不太方便预览生成页面的内容,无法可视化布局页面,更改html模板时会更加复杂。 
用这种方法的人很多,但我感觉这种方法是最不方便的。

2、 制作单独的HTML模板页,动态的内容用特定的字符作为标记(如:有人用$title$标记为网页标题),用ADODB.Stream或者Scripting.FileSystemObject将其模板内容载入,然后再用替换方法把原先定好的标记替换为动态内容

如:

Replace(载入的模板内容,"$title$",rs("title" ) )  
3、 用XMLHTTP或serverXMLHTTP获取动态页所显示的HTML内容,

我常用的生成html文件的实例:

‘-----------------翟振恺(小琦) 
‘weburl是要获取的动态页地址 
‘getHTTPPage(weburl)是获取动态页内容的函数 
weburl="http://"&Request.ServerVariables("SERVER_NAME")&"/contact.asp?id="&rs("id")&""‘指定动态页地址 
body=getHTTPPage(weburl)‘用函数取到动态页地址的内容 
‘-----------------翟振恺(小琦) 
此方法最大的好处就是不用费力气专门去写静态的模板页面,只是将原来就有的动态页面转换为HTML静态页面,但生成速度不是太快。

我常用的生成HTML的方法就是第3种:用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。

第二步是生成文件的方法: 
ASP里常用的有用ADODB.Stream生成文件和Scripting.FileSystemObject生成文件两种

1、 Scripting.FileSystemObject生成文件方法:

‘-----------------翟振恺(小琦) 
Set fso = CreateObject("Scripting.FileSystemObject") 
File=Server.MapPath("要生成文件路径和文件名.htm") 
Set txt=fso.OpenTextFile(File,8,True) 
data1="文件内容"用WriteLine方法生成文件 
txt.WriteLine data1 
data2="文件内容"‘用Write方法生成文件 
txt.Write data2 
txt.Close 
txt.fso 
‘-----------------翟振恺(小琦) 
2、

‘-----------------翟振恺(小琦) 
Dim objAdoStream 
set objAdoStream = Server.createObject("ADODB.Stream") 
objAdoStream.Type = 1 
objAdoStream.Open() 
objAdoStream.Write("文件内容") 
objAdoStream.SaveToFile 要生成文件路径和文件名.htm,2 
objAdoStream.Close() 
‘-----------------翟振恺(小琦)

(0)

相关推荐

  • ASP中不用模板生成HTML静态页面的方法

    当然是可以的,而且非常简单,今天就教大家在ASP中不用模板生成HTML静态页的方法. 这里假设有一个htmer.asp动态页面,你想把它生成为HTML静态页面htmer.html,那么我们首先新建一个ASP程序文件htmer_to_html.asp(该文件就是用来将htmer.asp动态页面生成为静态页面htmer.html的),htmer_to_html.asp的具体代码如下所示: 复制代码 代码如下: <form method="post" action="&quo

  • Asp生成HTML方法大全

    方法一:FSO Set fs = CreateObject("Scripting.FileSystemObject")NewFile=Server.MapPath("/asp/chap06/at/newfile.html")'新建一文件/newfile.html,若该文件已存在,则覆盖它Set a = fs.CreateTextFile(NewFile, True)Response.Write"新文件已建立!"a.closeFile=Server

  • ASP生成html的新方法

    由于代码比较短,这里就不进行注释了  复制代码 代码如下: <% '当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题 '注意:本文件一定要放在20041227111723.htm指向的文件的同一目录下 dim hughchiu_rtcode Function get_exe_code(20041227111723.htm) dim execode dim tmp_str Dim re,re1,content,fso,f,aspStart,aspE

  • asp分页生成html的程序脚本代码

    这是asp分页列表生成静态页面得asp小程序脚本 复制代码 代码如下: <!--#include file="conn.asp"-->  <html><head><TITLE>分页测试</TITLE><LINK href="inc/style.css" type=text/css rel=stylesheet></head>  <%strHead=strHead&&qu

  • fso asp生成静态html的代码

    FSO生成静态HTML文件的时候替换模板标签一直是一个很麻烦的问题,至少我是这么认为的,还要别外做一个模板,麻烦!,我今天看见有一个方法可以解决这个问题 如一个正常的index.asp页面,并且用ASP代码调出数据库中的内容,另建一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在textarea里调出来,如:  <textarea name="body"><!--#include f

  • ASP生成静态文件编码为UTF-8格式的HTML文件

    一般我们在ASP环境下,运行动生静操作时都用到的是FSO,他是专门对文件进行操作的一个组件,他FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO组件生成的文件都是gb2312格式的了,即便您在网页内写上charset="utf-8"也是没用的 要生成utf-8格式的文件,ASP环境下我们用 ADODB.Stream代替FSO读写utf-8文件,因为,ADODB.Stream,有一个CharSet 属性,可以让您定义要打

  • ASP新闻分页,将一篇过长的文章分页,生成静态页面

    上次还是CSDN里的朋友回答的,我复制了下来.原文如下 =========================== 利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好. 很简单,在要截断的地方附近找下面的符号: :'"?.!;'".! 如果后面存在<p>或<br>就分页.主要是要研究文章的格式. <% if Request.ServerVariables("Content_Length") &g

  • ASP生成静态htm页面基本代码

    以下虚线框内为mk.asp文件的具体代码:--------------------------------------------------------------------------------<%filename="test.htm"if request("body")<>"" thenset fso = Server.CreateObject("Scripting.FileSystemObject"

  • 在ASP中使用FSO组件生成HTML页面

    '共有两个页面index.htm是首页.程序比较简单,主要是用了ASP里的文件操作对象. <!--index.htm-------------------------------------------------------------------------------> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/l

  • asp:生成静态页面函数

    复制代码 代码如下: <% if SaveFile("/htm/list.htm","http://www.xxx.com/asp/list.asp") then Response.write "已生成" else Response.write "没有生成" end if function SaveFile(LocalFileName,RemoteFileUrl) Dim Ads, Retrieval, GetRemot

随机推荐