问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

简述静态html和asp的执行过程

发布网友 发布时间:2022-04-23 05:17

我来回答

1个回答

热心网友 时间:2022-05-12 19:26

将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面)。前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。
 
  当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等。
 
  像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitemap)。得失就要自己衡量把握了,但无论如何,我们还是要懂得如何操作的。这里就引用一下别人的文章说明几种常见的生成思路,供大家参考参考。
 
  1,下面这个例子直接利用FSO把html代码写入到文件中然后生成。html格式的文件 .这是最原始的,优点是简单,缺点是页面的修改不方便,我一般用到的地方是利用它生成整站参数文件。(通常网站如标题,名称等配置保存在数据库,我将它生成config.asp保存这些变量调用,避免频繁访问数据库)
 
<%
filename="test.htm"
if request("body")<>"" then
set fso = Server.CreateObject("Scripting.FileSystemObject")
set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&""))
htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"
htmlwrite.write "<body>输出Title内容: " & request.form("title") & "<br /> 输出Body内容:" & request.form("body")& "</body></html>"
htmlwrite.close
set fout=nothing
set fso=nothing
end if
%>
<form name="form" method="post" action="">
<input name="title" value="Title" size=26>
<br>
<textarea name="body">Body</textarea>
<br>
<br>
<input type="submit" name="Submit" value="生成html">
</form>

2,但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值,完成模板功能;将最终替换过的所有模板代码生成HTML文件。这种技术采用得比较多,大部分的CMS都是使用这类方法。
 
template.htm ' //模板文件
<html>
<head>
<title>$title$ by webjx.com</title>
</head>
<body>
$body$
</body>
</html>
TestTemplate.asp '// 生成Html
<%
Dim fso,htmlwrite
Dim strTitle,strContent,strOut
'// 创建文件系统对象
Set fso=Server.CreateObject("Scripting.FileSystemObject")
'// 打开网页模板文件,读取模板内容
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=f.ReadAll
htmlwrite.close
strTitle="生成的网页标题"
strContent="生成的网页内容"
'// 用真实内容替换模板中的标记
strOut=Replace(strOut,"$title$",strTitle)
strOut=Replace(strOut,"$body$",strContent)
'// 创建要生成的静态页
Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)
'// 写入网页内容
htmlwrite.WriteLine strOut
htmlwrite.close
Response.Write "生成静态页成功!"
'// 释放文件系统对象
set htmlwrite=Nothing
set fso=Nothing
%>

3,第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。找到一段XMLHTTP生成Html的代码参考一下.
<%'定义xmlhttp
function GetXmlText(Url)
dim GetXmlHttp
set GetXmlHttp=server.Createobject("Microsoft.XMLHTTP")
GetXmlHttp.open "Get",url,false,"",""
GetXmlHttp.Send
'GetXmlText=GetXmlHttp.Responsetext
GetXmlText=GetXmlHttp.ResponseBody
set GetXmlHttp=nothing
end function
'转换为字符
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'保存文件
Sub SaveToFile(strBody,File)
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Type = 2
.Open
.Charset = "GB2312"
.Position = objStream.Size
.WriteText = strBody
.SaveToFile Server.MapPath(File),2
.Close
End With
Set objStream = Nothing
End Sub
%>
<%SaveToFile BytesToBstr(GetXmlText("http://127.0.0.1/index.asp"),"GB2312"),"index.htm"%>

小结,这三种方式是比较常用的生成HTML文件方法,第三种方式,页面改动时非常方便,就算动态页改动多大都好,只要重新用XMLHTTP读取生成一次即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
五羊本田摩托车125c太费油 拖泥带水,束手无策,是什么生肖? 北汽幻速S7两年车都有哪些费用? 新北汽幻速s7这款车后期的维护大致要多少钱?花费大吗? 新学期的打算250字作文。。。急急 一般冷暴力的话有什么? 逻辑学怎么造句 想知道: 松原市 从长岭县到集体乡胜利村怎么坐公交 孕期不同阶段进行自然胎教的方法 香港路•浅水湾配套信息 一句话说明HTML网页开发的流程? 怎么把酷我音乐里的歌曲设置成来电铃声? 酷我音乐怎么设置铃声 两个HTML页面如何传递数据? 酷我音乐下载完音乐怎么设置手机铃声 HTML5学习的步骤是什么? 手机酷我音乐怎么设置铃声 手机酷我音乐设置铃声方法 谁知道 HTML和css的全部渲染过程,从解析html 开始到渲染结束 在文本编辑器中输入html代码后如何在浏览器中执行html代码呢??_百度... 如何学习HTML5? 做寿司放什么材料最好。 寿司里可以放些什么啊? 寿司可以放什么料 自制寿司 都可以用什么材料~?? 做寿司需要放哪些配菜 做寿司里面的食材除了青瓜、肉松、沙拉酱,还能放点什么? 自己动手做寿司可以放那些材料 手机屏幕上方 出现 中间是心形的信封 图标 情信叠信纸(急) 一个信封中间有一颗爱心是什么成语? 酷我音乐怎么把歌曲设置为铃声 编辑HTML的步骤是什么? 酷我音乐盒怎么制作铃声? 网页加载过程,及解析全过程,包括html css及javascript 如何将一个html页面解析 Html提交过程 怎样把酷我音乐盒的音乐设为闹钟铃声 网教学历在学信网能查吗? 网教学历在学信网能查吗? 查询网络教育大专文凭的真伪怎么查询? 查询网络教育大专文凭的真伪怎么查询? 求个废弃银行卡卡号 姓名和电话 支付宝实名认证用 谢谢 废弃的就行 中国银行卡卡号6013823600025483008作废没有 邮政储蓄作废的银行卡号会给其他客户用吗? 旧的银行卡号如何删除? 网教学历是什么? 网教学历是什么? 注销银行卡号? 手机文件管理出现些不明状态的照片,怎么删都删不掉咋办? 钱被打进了报废的银行卡号怎么办