asp 静态页面的一种思路


今天还算比较空闲!最近的两个网站的开发使我产生了不少新的想法!也阅读过了不少优秀的代码,但总没有找到一种符合自己的模式!借鉴缓存的设计,我似乎找到了一种更便捷的思路。其实这里的静态页面并不是真正意义上的静态,但可以达到了静态页面的解析效率,还未经项目测试,拿来分享。

  <%

  '文章来源:http://www.devjs.com

Const DEVJS_INDEX="index.html"
Const INDEX_DEFAULT_INTERVAL=300
Dim sLastUpdate
'用Application保存最后更新的时间,而在页面里做判断,每隔300秒(5分钟)就生成一次页面
sLastUpdate=Application("INDEX_LAST_Update")
If sLastUpdate="" or DateDiff("s",sLastUpdate,now())>INDEX_DEFAULT_INTERVAL Then
  '调用MakeIndex()生成页面,同时更改最后更新时间
  MakeIndex()
  sLastUpdate=Now()
  Application("INDEX_LAST_Update")=sLastUpdate
  Response.Write "超出默认时间,更新于" & sLastUpdate
Else
  Response.Write "读取静态页面,更新于" & sLastUpdate
End If
Response.Write LoadTextFile(Server.MapPath(DEVJS_INDEX),"GB2312")
  
Function MakeIndex()
  sContent="<hr>" & Now()
  Call SaveTextFile(Server.MapPath(DEVJS_INDEX),"GB2312",sContent)
End Function
%>

  如果过期就更新页面,没有过期直接调用静态页面,这里还用到了两个函数,一并贴上,提醒注意一下,SaveTextFile()是以覆盖方式写入的

  就是这一句 oStream.SaveToFile sFilePath,2

<%
Function LoadTextFile(sFilePath,sCharset)
  Dim oStream
  Set oStream=Server.CreateObject("ADODB.Stream")
  oStream.Type=2
  oStream.Mode=3
  oStream.Open
  oStream.Charset=sCharset
  oStream.Position=oStream.Size
  oStream.LoadFromFile sFilePath
  LoadTextFile=oStream.ReadText
  oStream.Close
  Set oStream=Nothing
End Function
  
Function SaveTextFile(sFilePath,sCharset,outString)
  SaveFile=false
  Dim oStream
  Set oStream = Server.CreateObject("ADODB.Stream")
  oStream.Type=2
  oStream.Mode=3
  oStream.Open
  oStream.Charset=sCharset
  oStream.WriteText = outString
  oStream.SaveToFile sFilePath,2
  oStream.Close
  Set oStream = Nothing
  SaveTextFile=true
End Function
%>

  这个比缓存省事,也直接的多!其实,在MakeIndex()里可以做很多事,比如读取模板文件进行替换这些


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3