ASP生成HTML静态网页的技术
一、为什么要用ASP生成静态网页?
生成静态的优点很显然,生成静态后能提高访问速度,静态HTML基本不需要经过服务器解释。而ASP需要服务器解器,占用内存、CPU等服务器资源。
生成静态也有其缺点:1、占用磁盘空间,现在硬盘便宜,不差这点空间。2、更新慢,修改网页时要全站更新,数据量大就需要很长时间生成。但这一点只要建站时规划好是可以克服的。
二、生成静态的方法主要有哪些?
1、使用XMLHTTP组件来生成:这种方法无需做模板,先做一个动态的网页,测试合格后,用XMLHTTP获取源代码保存。这种方法适合更新量小的站,因为生成时占用比较大的服务器资源。建议不使用。 如首页需要静态化,则可以使用这种方法。详见》》asp利用XMLHTTP组件获取网页源文件
2、利用FSO组件生成。一般实现方法如下:
模板:做一个模板,将需要替换的项目标出来。
说明:头部和脚部可以独立在模板之外,也可以放在一起。
生成:生成程序最好独立一个ASP文件。make.asp:
首先根据传入的信息ID,查询数据库,把需要的数据查出来。
然后用FSO读取模板。
相关函数:
function savefile(filename,str) ‘保存文件
‘Response.Write(str)
Set MyFile = fso.CreateTextFile(filename,True)
MyFile.WriteLine(str)
MyFile.Close
response.write filename&”成功创建!(“&len(str)&”)<br>”
end function
function getfile(filename) ‘读取模板
response.write filename&”获取成功!<br>”
Set txt = fso.OpenTextFile(filename,1)
getfile = txt.Readall
txt.Close
end function
function createfolder(foldername) ‘建立目录
foldername=foldername
if not fso.folderexists(foldername) then
fso.createfolder(foldername)
end if
end function
将模板中的相应字符替换。如:
motext1=replace(motext1,”xtitlex”,rs(“title”))
motext1=replace(motext1,”xinfoidx”,rs(“infoid”))
motext1=replace(motext1,”xtimex”,year(addtime1)&”年”&month(addtime1)&”月”&day(addtime1)&”日”)
motext1=replace(motext1,”xaddtimex”,addtime1&””)
motext1=replace(motext1,”xcontentx”,”xcontentx”&tagstr)
headstr=replace(headstr,”xtitlex”,rs(“title”))
headstr=replace(headstr,”xdescriptionx”,rs(“title”)&rs(“description”)&” “)
将替换后的结果保存写入文件。
path=”../news/”&year(addtime1)&month(addtime1)&day(addtime1)
path1=server.mappath(path) ‘生成路径
call createfolder(path1) ‘建文件夹
filename=path1&”/”&rs(“infoid”)&”.htm” ‘文件名
call savefile(filename,motext1) ‘保存
这样就完成了生成过程.
3、批量生成的实现方法:
可以使用js调用如:<script src=”make.asp?id=11″> </script>,通过查询数据库,循环即可批量生成。
4、自动生成的实现方法:
添加信息,保存到数据库之后,把最新一条信息的ID查询出来,调用JS:<script src=”make.asp?id=11″> </script>。即可生成。
5、生成静态之后带来的问题及解决方法:
有些页面中有的内容是要实时更新的,如果不考虑SEO网站优化因素,可以使用JS或IFRAME来达到目的。如统计文章的点击量:<script src=/count.asp?id=xidx></script>生成时把xidx替换成当前文章的ID即可。如需在页面中显示出点击量可以用:document.write();输出。
如:显示判断是否登陆的信息,我们可以使用IFRAME来实现,比较简单;也可以使用JS来实现。
如要显示最新信息,可以用JS。
6、生成静态要考虑SEO效果与实际。可以使用SHTML技术,SHTML性能比HTML低一点,但几乎可以不考虑这一点点的性能牺牲。SHTML可以使用和ASP一样的include语句如:<!–#include file=”aa.htm”–>,但不能包含ASP程序。更新时只需要更新AA.htm即可。目前很多大型网站都采用这种格式。 》》SHTML教程