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

2018-09-06 13:19

阅读:617

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

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

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

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

不生成静态页并且降低服务器负担!
复制代码 代码如下:
<%@LANGUAGE=VBSCRIPTCODEPAGE=65001%>
<%
读取远程文件的函数
PublicFunctionreadRemoteFile(RemoteDataUrl)
DimXMLHttp
OnErrorResumeNext
SetXMLHttp=Server.CreateObject(Microsoft.XMLHTTP)
WithXMLHttp
.OpenGet,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(
tobody=body&<!--madecache&Now&-->
Application.Lock
Application(default)=body
Application(defaultdate)=DateAdd(s,1200,Now)
Application.UnLock
EndFunction
Response.Write(tobody())
%>


评论


亲,登录后才可以留言!