|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天对照|静态将静态页面转换天生静态Html文件有很多优点,好比天生html网页有益于被搜刮引擎收录(出格是对承受静态参数的页面).前台会见时,离开了数据会见,加重对数据库会见的压力,加速网页翻开速率.
固然,凡事有益必有弊,天生HTML页面有形中也泯灭大批的磁盘空间以寄存这些静态文件,在编纂页面过程当中除读写数据库外,也要读写服务器磁盘,页面款式的修改必需从头天生全体HTML文件,等等。
像良多搜刮引擎,都能够提交网站的页面地点列表,静态文件的收录成绩已不算是个成绩了(如googlesitemap)。得掉就要本人权衡掌控了,但不管怎样,我们仍是要明白怎样操纵的。这里就援用一下他人的文章申明几种罕见的天生思绪,供人人参考参考。
1,上面这个例子间接使用FSO把html代码写进到文件中然后天生.html格局的文件。这是最原始的,长处是复杂,弱点是页面的修正不便利,我一样平常用到的中央是使用它天生整站参数文件。(一般网站如题目,称号等设置保留在数据库,我将它天生config.asp保留这些变量挪用,制止频仍会见数据库)
<%
filename="test.htm"
ifrequest("body")<>""then
setfso=Server.CreateObject("Scripting.FileSystemObject")
sethtmlwrite=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
setfout=nothing
setfso=nothing
endif
%>
<formname="form"method="post"action="">
<inputname="title"value="Title"size=26>
<br>
<textareaname="body">Body</textarea>
<br>
<br>
<inputtype="submit"name="Submit"value="天生html">
</form>
2,可是依照下面的办法天生html文件十分不便利,第二种办法就是使用模板手艺,将模板中特别代码的值交换为从表单或是数据库字段中承受过去的值,完成模板功效;将终极交换过的一切模板代码天生HTML文件.这类手艺接纳得对照多,年夜部分的CMS都是利用这类办法.
template.htm//模板文件
<html>
<head>
<title>$title$bywebjx.com</title>
</head>
<body>
$body$
</body>
</html>
TestTemplate.asp//天生Html
<%
Dimfso,htmlwrite
DimstrTitle,strContent,strOut
//创立文件体系工具
Setfso=Server.CreateObject("Scripting.FileSystemObject")
//翻开网页模板文件,读取模板内容
Sethtmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=f.ReadAll
htmlwrite.close
strTitle="天生的网页题目"
strContent="天生的网页内容"
//用实在内容交换模板中的标志
strOut=Replace(strOut,"$title$",strTitle)
strOut=Replace(strOut,"$body$",strContent)
//创立要天生的静态页
Sethtmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)
//写进网页内容
htmlwrite.WriteLinestrOut
htmlwrite.close
Response.Write"天生静态页乐成!"
//开释文件体系工具
sethtmlwrite=Nothing
setfso=Nothing
%>
3,第三种办法就是用XMLHTTP猎取静态页天生的HTML内容,再用ADODB.Stream大概Scripting.FileSystemObject保留成html文件。找到一段XMLHTTP天生Html的代码参考一下.
<%
经常使用函数
1、输出url方针网页地点,前往值getHTTPPage是方针网页的html代码
functiongetHTTPPage(url)
dimHttp
setHttp=server.createobject("MSXML2.XMLHTTP")
Http.open"GET",url,false
Http.send()
ifHttp.readystate4then
exitfunction
endif
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
sethttp=nothing
iferr.number0thenerr.Clear
endfunction
2、转换乱玛,间接用xmlhttp挪用有中笔墨符的网页失掉的将是乱玛,能够经由过程adodb.stream组件举行转换
FunctionBytesToBstr(body,Cset)
dimobjstream
setobjstream=Server.CreateObject("adodb.stream")
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Writebody
objstream.Position=0
objstream.Type=2
objstream.Charset=Cset
BytesToBstr=objstream.ReadText
objstream.Close
setobjstream=nothing
EndFunction
txtURL=server.MapPath("../index.asp")
sText=getHTTPPage(txtURL)
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
filename="../index.htm"
SetopenFile=FileObject.OpenTextfile(server.mapPath(filename),2,true)true为不存在自行创建
openFile.writeline(sText)
SetOpenFile=nothing
%>
<script>
alert("静态网页天生终了");
history.back();
</script>
小结,这三种体例是对照经常使用的天生HTML文件办法,我个对照喜好利用第三种体例,由于页面修改时十分便利,就算静态页修改多多数好,只需从头用XMLHTTP读取天生一次便可。
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了, |
|