如何将ASP网页生成HTML网页?

如何将ASP网页生成HTML网页?,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

如题

希望有成熟的代码可以供我参考

解析:

以下代码就是将一个ASP的动态页面生成一个HTML的静态页面,注释我已经加上了,自己看吧。

FileName = "Index"&Item_Classid&""

FilePath = Server.MapPath("/")&"\"&FileName

_Temp = _Temp&FilePath&"</LI>"

以上代码是在建立最终生成静态文件的名称和路径。

Do_Url = ""

Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/detail"

Do_Url = Do_Url&"?Item_Classid="&Item_Classid

strUrl = Do_Url

以上代码是通过拼写Do_Url字符串来获得你所传递过来的文件路径和参数,并最终附值到strUrl变量中。

dim objXmlHttp

set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")

objXmlHttp.open "GET",strUrl,false

objXmlHttp.send()

以上这段代码是在通过你所传递过来的strUrl解析该页面中的HTML代码;关键是这句(objXmlHttp.open "GET",strUrl,false )。

Dim binFileData

binFileData = objXmlHttp.responseBody

以上代码是将解析好的HTML代码附到binFileData中

Dim objAdoStream

set objAdoStream = Server.CreateObject("ADODB.Stream")

objAdoStream.Type = 1

objAdoStream.Open()

objAdoStream.Write(binFileData)

objAdoStream.SaveToFile FilePath,2

objAdoStream.Close()

以上这段代码是建立一个文件对象,将所拥有HTML代码的变量binFileData写到该文件中。

_Temp = _Temp&"<UL>"

Response.Write _Temp

Response.Write ( "<BR>" )

Response.Write ( "成功生成文件:" )

以上几句就不用我解释了。。。。:)

其实上面这个做法并不是很科学,还可以将代码更完善些。建议你将这个步骤封装到两个FUNCTION中,这样比较清晰并且方便重复调用,

CreateFile:用于建立生成的静态文件,其中调用GetUrlText进行脚本解析。

Function CreateFile(fileName,url)

Dim fs,fname

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set fname = fs.CreateTextFile(FileName, True)

fname.Write GetUrlText(url)

fname.Close

Set fname = Nothing

Set fs = Nothing

End Function

GetUrlText:用语解析传递回来的ASP页面

Function GetUrlText(url)

Dim xmlHttp

Set xmlHttp = server.createobject("MSXML2.ServerXMLHTTP")

xmlHttp.setTimeouts 10000,10000,10000,30000

xmlHttp.Open "GET",url, False

xml.setRequestHeader "CONTENT-TYPE", "text/xml"

xmlHttp.Send

If xmlHttp.ReadyState = 4 Then

GetUrlText = xmlHttp.responseText

Else

GetUrlText = ""

End If

End Function

里面URL就是你传递过来的地址,而FileName就是生成文件的地址,你在调用时直接调用CreateFile,将FileName和URL传递过去就可以了,怎么样,是不是比上面的看起来清晰很多:)

实现的方法有两种,一种是假静态,采用地址重定向技术,iis服务器常用的有http重定向,url重写模块,microsoftURLrewrite具体可以百度更深入的了解一下。

一种是真静态,即把你页面所有不参与逻辑运算的静态框架用html写出来,比如页面布局。

在你的静态页面布局中插入要替换的逻辑运算字段,比如{#remen}字段。

后台写一个获取逻辑代码的程序,可以是逻辑运算的结果,或者html代码片段,然后替换掉你静态页面里的字段{#remen},那么你的静态页面里就得到了所想展示的结果和内容

然后把整个静态页面用流的方式,写入到服务器的硬盘里,例如index.html,那么用户访问index.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内容,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12000000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存