使用FSO生成
<%
'使用FSO生成
Set fs = CreateObject("Scripting.FileSystemObject")
NewFile=Server.MapPath("ud03/fso.htm")
'新建一文件fso.htm,若该文件已存在,则覆盖它
Set a = fs.CreateTextFile(NewFile, True)
Response.Write"新文件已建立!"
a.close
File=Server.MapPath("ud03/fso.htm")
Set txt=fs.OpenTextFile(File,8,True) '打开成可以在结尾写入数据的文件
data1="这句话是使用WriteLine方法写入的。!<Br>"
txt.WriteLine data1
data2="这句话是使用Write方法写入的。<Br>"
txt.Write data2
txt.Close
%>
使用XMLHTTP生成
<%
'使用XMLHTTP生成
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
'把下面的地址替换成你的首页的文件地址,一定要用http://开头的绝对路径,不能写相对路径
xml.Open "GET", "http://www.kinoko.name/ud03/", False
xml.Send
BodyText=xml.ResponseBody
BodyText=BytesToBstr(BodyText,"gb2312")
Set xml = Nothing
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile= fso.CreateTextFile(server.MapPath("ud03.htm"), True) '生成的html的文件名
MyFile.WriteLine(BodyText)
MyFile.Close
'使用Adodb.Stream处理二进制数据
Function BytesToBstr(strBody,CodeBase)
dim objStream
set objStream = Server.CreateObject("Adodb.Stream")
objStream.Type = 1
objStream.Mode =3
objStream.Open
objStream.Write strBody
objStream.Position = 0
objStream.Type = 2
objStream.Charset = CodeBase
BytesToBstr = objStream.ReadText
objStream.Close
set objStream = nothing
End Function
%>
使用XMLHTTP批量生成
<%
'使用XMLHTTP批量生成
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="<UL>"
For i=1 To 30 '需要生成的id:1到30
Html_Temp = Html_Temp&"<LI>"
Item_Classid = i
FileName = "Archives_"&Item_Classid&".htm" '生成的html文件名
FilePath = Server.MapPath("/")&"/"&FileName
Html_Temp = Html_Temp&FilePath&"</LI>"
Do_Url = "http://www.kinoko.name/ud03/index.php" 'WEB路径
Do_Url = Do_Url&"?p="&Item_Classid 'WEB路径之后的ID
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
Next
Html_Temp = Html_Temp&"<UL>"
%>
<%
Response.Write ( "成功生成文件:" )
Response.Write ( "<BR>" )
Response.Write Html_Temp
%>
大家都知道HTML静态网页更容易被搜索引擎收录索引,动态生成HTML网页,也可使网站的网页数量增多,搜索引擎收录的数量也可能多,再加下提高网页的质量也意未着什么呢?我想大家也知道。 为了这个,我决定了改变之前网站建设,网页设计的方法,经过多翻的研究及思考,对多种网页动态生成的方法,我比较喜欢用标签替换的方法成生网页。 标签替换法:这是我个人理解的定义,不知道别人怎么叫它的,呵呵! 标签替换法,就是在设计好了的网页模板中,放入自已设定的标签,然后用你需要显示出来的东东替换它。如 模板文件1 这个模板我们保存在数据库表中 temptable <html> <%
asp生成静态网页 不用模板 直接传参数读取asp文件
下面代码可以帮您生成静态页面,如:list.asp是读数据库的页面,要生在list.html静态页面,你的域名是flyso.net,可以用下面代码,使用方法:
程序代码
<%
if SaveFile("/html/list.html","http://www.flyso.net/list.asp") then Response.write "已生成" else Response.write "没有生成" end if function SaveFile(LocalFileName,RemoteFileUrl) Dim Ads, Retrieval, GetRemoteData On Error Resume Next Set Retrieval = Server.CreateObject("Microso" & "ft.XM" & "LHTTP") With Retrieval .Open "Get", RemoteFileUrl, False, "", "" .Send GetRemoteData = .ResponseBody End With Set Retrieval = Nothing Set Ads = Server.CreateObject("Ado" & "db.Str" & "eam") With Ads .Type = 1 .Open .Write GetRemoteData .SaveToFile Server.MapPath(LocalFileName), 2 .Cancel() .Close() End With Set Ads=nothing if err <> 0 then SaveFile = false err.clear else SaveFile = true end if End function %> |
新闻系统、blog系统等都可能用到将动态页面生成静态页面的技巧来提高页面的访问速度,从而减轻服务器的压力,本文为大家搜集整理了ASP编程中常用的生成静态网页的方法,有使用fso的,也有使用到xmlhttp或者Adodb.Stream的。 1.使用FSO生成 <% 2.使用XMLHTTP生成 <% 3.使用XMLHTTP批量生成 <% 4.自动按模板生成网站首页 <% 5.将asp页面转换成htm页面 <% 代码算是最简单的,直接保存成一个asp文件即可,只要把URL(要转化的asp地址)和dizhi(要保存的html地址)设置好就可以了,一般这两个文件在同一个目录,才能保证图片或者css、js起作用。 6.下面是利用XMLHTTP将动态网页生成静态网页的一段简单代码。 如一个正常的index.asp页面,并且用ASP代码调出数据库中的内容,另建一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在textarea里调出来,如: 将这个textarea包含在表单中,在接收表单页用创建FSO对象,如下生成index.html文件! <% 这样index.html文件就生成了,连模板都用不着,只要将正常情况下使用的ASP文件读取到textarea里就可以了,目前尚未发现问题!当然前提是服务器要支持FSO。 开启FSO权限 在 开始-“运行”中执行regsvr32.exe scrrun.dll即可。如想关闭FSO权限,在上述命令中加/u参数。注册表中的键值位置:HKEY_CLASS_BOOT/F.S.O .FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便。函数: ’ -------------------------------- MyPath = "C:/a/b/c/" |