如何快速生产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 %> |
|