关键词
ASP生成静态页面
摘要
本文介绍ASP生成静态页面,即将带参数的动态页面生成静态的HTML文件。
动态页面的网站,如ASP编程中经常看到的post.asp?id=123,这种方式每次打开都可能会从数据库中读取信息,响应很慢,而且这种方式的页面不利于搜索引擎收录。所以我们要做静态化处理,将其变成post/123.html或post123.html这种样式。
关于伪静态
真正的静态化应该是服务器上存储的就是xxx.html这样的页面,当有客户端请求这个页面时,IIS直接找到这个html页面,发给客户端就搞定了,效率可以很高。但去做静态化的工作很烦,很复杂,于是就出现了伪静态。什么时伪静态呢,就是访问的地址确实是一个html的页面地址,但服务器上却没有这个html静态页面,它这个是通过一些插件让IIS做了一个跳转处理,当接收到post/数字.html时,不直接去找这个html静态页面,而去找post.asp?id=数字,这样就能顺利的返回结果了。
伪静态这里只是简单提一下,我们要做真正的静态。
一般有两种比较简单的方式来做静态化
1、模拟浏览器去打开post.asp?id=1的页面,把访问得到的html代码保存下来,命名为post/1.html
给一个函数,大家参考
‘抓取页面
Function GetHttpPage(httpUrl,charSet) If IsNull(httpUrl)=True Or Len(httpUrl)<18 Or httpUrl="$False$" Then GetHttpPage="$False$" Exit Function End If Dim Http Set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",HttpUrl,False Http.Send() If Http.Readystate<>4 then Set Http=Nothing GetHttpPage="$False$" Exit function End if GetHTTPPage=bytesToBSTR(Http.responseBody,charSet) Set Http=Nothing If Err.number<>0 then Err.Clear End If End Function
2、使用模板替换法
假如有如下一个模板
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>[%title%]</title> <body> [%title%] <br> [%content%]<br> [%time%] </body> </HTML>
然后你使用fso把这个模板文件读取到一个临时字符串变量中,然后循环数据库,拿数据库的字段,把字符串中的[%title%]这个的待替换关键词替换掉,然后把这个字符串再使用fso保存到一个新的文本文件中,这个新的文本文件就是你需要的静态页面,可以将其命令为“xx.html”。
关于静态化,还有一些高级的方法,难度较高,在此就不一一介绍。