当前位置: 首页 > 图文教程 > 网络编程 > ASP > 利用 cache 做对比静态页的网页技术

ASP
ASP优化:几招提高ASP性能的最佳选择
ASP进阶:用ASP制作统计饼图、柱状图等
ASP应用进阶 ASP Error对象的相关知识
ASP常见数学函数 Abs Atn Cos 等详解
ASP优化 用数据绑定实现高效率动态网页
用着放心 为你的ASP程序作一个负载测试
ASP+Access的安全隐患以及解决方法
ASP中将视频文件转换成.flv格式
经典!5分钟编写一个ASP论坛
ASP实现小偷程序原理和简单示例
用ASP木马实现FTP和解压缩
如何用ASP编写网站统计系统
response.write与之间的区别
asp操作excel文件的函数
如何有效提高asp页面的访问速度
JS+ASP打造无刷新新闻列表
使用VB将ASP代码封装生成DLL文件
用ASP打造一个小型的网页BBS系统
ASP网站的漏洞分解以及入侵防范方法
破解网站发布系统 ASP生成静态页面方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 76 ::
收藏到网摘: n/a

一直想写一套生成静态页面的文章系统 但面对生成静态后的一些复杂数据库交互问题。又望而却步!
于是就想 有没有 在不耽误数据交互的情况下,而又能降低服务器负担的方法呢!
一个网站,访问量最大的莫过于 首页 和主栏目页了。 其他的页面 我可以不去想, 首页和主栏目页 在大流量下服务器改如何承担呢。
根据我编程2年多来的总结经验我想去了一下方法!
不生成静态页 并且降低服务器负担!
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'读取远程文件的函数
Public Function readRemoteFile(RemoteDataUrl)
Dim XMLHttp
'On Error Resume Next
Set XMLHttp = Server.CreateObject("Microsoft.XMLHTTP")
With XMLHttp
.Open "Get", RemoteDataUrl, False
.Send
readRemoteFile = BytesToBstr(.responseBody, "UTF-8")
End With
Set XMLHttp = Nothing
End Function
'编码转换
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
Function tobody()
Dim dateVal
'先试图访问缓存,看有没有,或者过期没有
dateVal = Application("defaultdate")
If dateVal = "" Then dateVal = DateAdd("s",1200,Now)
If Application("default") <> "" Then
If DateDiff("s", Now, dateVal) > 0 Then
'如果有,就从缓存读取,对服务器来说,就是从内存读取
tobody = Application("default")&"<!--new cache"&dateVal&"-->"
Exit Function
End If
End If
Dim body
'如果缓存没有,则从远程读取,并写入缓存,设置缓存时间。
body = readRemoteFile("http://www.aoaob.com/default.asp")
tobody = body&"<!--made cache"&Now&"-->"
Application.Lock
Application("default") = body
Application("defaultdate") = DateAdd("s",1200,Now)
Application.UnLock
End Function
Response.Write(tobody())
%>