利用 cache 做对比静态页的网页技术
2018-09-06 13:19
  一直想写一套生成静态页面的文章系统但面对生成静态后的一些复杂数据库交互问题。又望而却步! 
于是就想有没有在不耽误数据交互的情况下,而又能降低服务器负担的方法呢! 
一个网站,访问量最大的莫过于首页和主栏目页了。其他的页面我可以不去想,首页和主栏目页在大流量下服务器改如何承担呢。 
根据我编程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()) 
%>
上一篇:编写“公平”的ASP图形计数器
文章标题:利用 cache 做对比静态页的网页技术
文章链接:http://soscw.com/index.php/essay/11133.html