ASP生成静态页面原理是什么?
我们这里讨论下,新闻发布系统中ASP动态生成HTML的机理:用模板生成,这可能只是动态生成HTML的技术之一。
首先我们要有一个模板template.htm,它是一个普通的HTML页面,用来显示你要生成的新闻页面,其基本内容除了基本的框架,具体要替换的内容,比如新闻标题,新闻内容,新闻发布时间、发布人等可以用特殊字符替换,以便ASP程序可以分辨出该部分。这里我们用{newsTitle},{newsContent},{newsTime}等来代替。
然后在新闻生成的时候,我们的程序如下:
strTitle=trim(ChkString(Request.Form("title"),"save"))'获取新闻标题
strContent=trim(ChkString(Request.Form("content"),"save"))'获取新闻内容
Setfso=CreateObject("Scripting.FileSystemObject")'创建文件流对象
.....
SetobjStream=fso.OpenTextFile(folderPath&"newstemplate emplate.htm")'读入模板文件
whilenotobjStream.AtEndOfStream
newscontent=newscontent&objStream.ReadLine
newscontent=replace(newscontent,"{newstitle}",strTitle)'替换标题
newscontent=replace(newscontent,"{newscontent}",strContent)'替换新闻内容
...
wend
objStream.close
htmlfilename=DateToFilename(Now())
SetobjHtml=fso.CreateTextFile(folderPath&"newshtml"&htmlfilename)'生成以时间为名字的html文件
objHtml.WriteLinenewscontent
objHtml.close
setfso=nothing
....
strContent=trim(ChkString(Request.Form("content"),"save"))'获取新闻内容
Setfso=CreateObject("Scripting.FileSystemObject")'创建文件流对象
.....
SetobjStream=fso.OpenTextFile(folderPath&"newstemplate emplate.htm")'读入模板文件
whilenotobjStream.AtEndOfStream
newscontent=newscontent&objStream.ReadLine
newscontent=replace(newscontent,"{newstitle}",strTitle)'替换标题
newscontent=replace(newscontent,"{newscontent}",strContent)'替换新闻内容
...
wend
objStream.close
htmlfilename=DateToFilename(Now())
SetobjHtml=fso.CreateTextFile(folderPath&"newshtml"&htmlfilename)'生成以时间为名字的html文件
objHtml.WriteLinenewscontent
objHtml.close
setfso=nothing
....
考虑到在生成新闻时的并发性,我们可以在以时间为名字的文件名后面添加一个随机数,写进数据库中新闻表的文件名字段。以后在前台显示的时候,就直接在特定目录下找到该文件了。
本文地址:http://www.45fan.com/dnjc/69624.html