分享

如何快速生产HTML网页及实现网页静态化

 jsjjtylz 2014-01-11
如何快速生产HTML网页及实现网页静态化
原理
网页静态化就是将ASP或PHP网页以HTML形式存放在服务器上,可以减轻服务器的负担,同时也更有利于搜索引擎收录,当然,更新可能有些麻烦。

最简单的方法就是使用XMLHTTP组件读取ASP或PHP网页,然后将读取到的内容保存成HTML,当然,该网页内容的链接也应做相应的修改。(此方法适用于首页或列表页等小量的文件生成)

如果是批量的文章,用上面的方法,就会需要很多的时间来生成,而且加重服务器的负担,以文章系统中,大家经常看到有模版,他们就是为了适用于批量文件生成的(我的说法,呵呵),而且这样也很方法进行风格修改。模版和普通的网页基本上没有区别,只是在原来是文章标题的地方使用特殊的标志,如{标题},{内容}等,在批量生成的时候,只需从数据库中读取文章内容,替换掉特殊标志,再保存成HTML网页,即完成了HTML静态化,当然,网页的链接一般要保证正确。

代码,简单的批量HTML文章生成示例,view.asp为模版页,生成的HTML以文单ID.HTM保存在当前目录下面。
View.asp中可以只有{标题}{内容},程序会替换成相应的内容,实际制作中界面自己制作。
<%
set rs=Server.CreateObject("ADODB.RecordSet")
sql="select * from News"
rs.open sql,conn,3,3
if not rs.EOF then
Url = "http://127.0.0.1/view.asp?id="&rs("Newsid") '模版页
SourceCode = GetUrl(url)
end if

do while not rs.EOF
pencat=sourcecode
pencat=replace(pencat,"{标题}",rs("title"))
pencat=replace(pencat,"{内容}",rs("content"))

Set fso = Server.CreateObject("Scripting.FileSystemObject")
filepath=rs("Newsid")&".htm"   '生成的HTML网页
Set fout = fso.CreateTextFile(server.mappath(filepath))
fout.WriteLine pencat
set fout=nothing
set fso=nothing 
rs.movenext
loop
rs.close
set rs=nothing


Function bytes2BSTR(vIn) 
strReturn = "" 
For i = 1 To LenB(vIn) 
ThisCharCode = AscB(MidB(vIn,i,1)) 
If ThisCharCode < &H80 Then 
strReturn = strReturn & Chr(ThisCharCode) 
Else 
NextCharCode = AscB(MidB(vIn,i+1,1)) 
strReturn = strReturn & Chr (CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 
i = i + 1 
End If 
Next 
bytes2BSTR = strReturn 
End Function 

Function GetURL(url) 
Set Retrieval = CreateObject("Microsoft.XMLHTTP") 
With Retrieval 
.Open "GET", url, False
.Send 
GetURL = bytes2bstr(.responsebody)
'对取得信息进行验证,如果信息长度小于100则说明截取失败
if len(.responsebody)<100 then
response.write "获取远程文件 <a href="&url&" target=_blank>"&url&"</a> 失败。"
response.end
end if

End With 
Set Retrieval = Nothing 
End Function
%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多