利用 cache 做对比静态页的网页技术

时间:2021-05-25

一直想写一套生成静态页面的文章系统但面对生成静态后的一些复杂数据库交互问题。又望而却步!

于是就想有没有在不耽误数据交互的情况下,而又能降低服务器负担的方法呢!

一个网站,访问量最大的莫过于首页和主栏目页了。其他的页面我可以不去想,首页和主栏目页在大流量下服务器改如何承担呢。

根据我编程2年多来的总结经验我想去了一下方法!

不生成静态页并且降低服务器负担!
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%
'读取远程文件的函数
PublicFunctionreadRemoteFile(RemoteDataUrl)
DimXMLHttp
'OnErrorResumeNext
SetXMLHttp=Server.CreateObject("Microsoft.XMLHTTP")
WithXMLHttp
.Open"Get",RemoteDataUrl,False
.Send
readRemoteFile=BytesToBstr(.responseBody,"UTF-8")
EndWith
SetXMLHttp=Nothing
EndFunction
'编码转换
FunctionBytesToBstr(body,Cset)
dimobjstream
setobjstream=Server.CreateObject("adodb.stream")
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Writebody
objstream.Position=0
objstream.Type=2
objstream.Charset=Cset
BytesToBstr=objstream.ReadText
objstream.Close
setobjstream=nothing
EndFunction

Functiontobody()
DimdateVal
'先试图访问缓存,看有没有,或者过期没有
dateVal=Application("defaultdate")
IfdateVal=""ThendateVal=DateAdd("s",1200,Now)
IfApplication("default")<>""Then
IfDateDiff("s",Now,dateVal)>0Then
'如果有,就从缓存读取,对服务器来说,就是从内存读取
tobody=Application("default")&"<!--newcache"&dateVal&"-->"
ExitFunction
EndIf
EndIf
Dimbody
'如果缓存没有,则从远程读取,并写入缓存,设置缓存时间。
body=readRemoteFile("http:///default.asp")
tobody=body&"<!--madecache"&Now&"-->"
Application.Lock
Application("default")=body
Application("defaultdate")=DateAdd("s",1200,Now)
Application.UnLock
EndFunction
Response.Write(tobody())
%>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章