打开 httpd.conf 文件(比如我的是在 F:\wamp\bin\apache\Apache2.2.17\conf 下),找到这一行:
复制代码#LoadModule expires_module modules/mod_expires.so
去掉注释(井号),然后再加上这么两行,再重启下apache,就 ok 了:
复制代码<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html A1000
</IfModule>
我们看到 max-age 字段也出现在了响应头中,其实它是根据 Expires 的设置自动填充的。
其他设置类似:复制代码#启用expires_module模块
LoadModule expires_module modules/mod_expires.so
# 启用有效期控制
ExpiresActive On
# GIF有效期为1个月
ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800
#以下的含义类似
ExpiresByType text/css "now plus 2 months"
ExpiresByType text/js "now plus 2 days"
ExpiresByType image/jpeg "access plus 2 months"
ExpiresByType image/bmp "access plus 2 months"
ExpiresByType image/x-icon "access plus 2 months"
ExpiresByType image/png "access plus 2 months"
将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。缓冲器为暂时置放输出或输入资料的内存。缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。
<%Dim time2,time1time1=timer
Url = "http://www.ourcy.com/index2.asp"
cacheTime=600 '缓存时间,单位为s秒
'强制生成!
If Request.QueryString("g")<>"" Then Call makecache()
'判断 自动生成!
If application("ourcyindex")<>"" And isDate(application("tqexpire_ourcyindex")) Then '如果缓存的日期存在并且符合时间日期格式
If CDate(application("tqexpire_ourcyindex"))<Now() Then makecache() '如果缓存到期时间小于了现在的时间,就是过期了,调用生成缓存过程。
Else
makecache()'如果缓存日期不存在或者不符合时间日期格式,直接调用生成过程。
End If
time2=timer
'这是我为了去掉我站内的执行时间而进行的替换,你可以不管,直接输出application("ourcyindex")就行了
response.write Replace(application("ourcyindex"),"info@ourcy.com","info@ourcy.com 执行时间 "& FormatNumber((time2-time1)*1000,1) " 毫秒 缓存过期:"& application("tqexpire_ourcyindex")"")
'定义生成缓存过程
Sub makecache
List_PageCode=getHTTPPage(Url)
application.lock
application("ourcyindex")=List_PageCode
application("tqexpire_ourcyindex")=dateadd("s",cacheTime,Now())
application.unlock
End Sub
Function getHTTPPage(url)
IF(IsObjInstalled("Microsoft.XMLHTTP") = False)THEN
Response.Write "<br><br>服务器不支持Microsoft.XMLHTTP组件"
Err.Clear
Response.End
END IF
On Error Resume Next
Dim http
SET http=Server.CreateObject("Msxml2.XMLHTTP")
Http.open "GET",url,False
Http.send()
IF(Http.readystate<>4)THEN
Exit Function
END IF
getHTTPPage=BytesToBSTR(Http.responseBody,"GB2312")
SET http=NOTHING
IF(Err.number<>0)THEN
Response.Write "<br><br>获取文件内容出错"
'Response.End
Err.Clear
END IF
End Function
Function BytesToBstr(CodeBody,CodeSet)
Dim objStream
SET objStream = Server.CreateObject("adodb.stream")
objStream.Type = 1
objStream.Mode =3
objStream.Open
objStream.Write CodeBody
objStream.Position = 0
objStream.Type = 2
objStream.Charset = CodeSet
BytesToBstr = objStream.ReadText
objStream.Close
SET objStream = NOTHING
End Function
'===========================================
'作 用:检查组件是否已经安装
'返回值:True ----已经安装
' False ----没有安装
'===========================================
Function IsObjInstalled(objName)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim testObj
SET testObj = Server.CreateObject(objName)
IF(0 = Err)THEN IsObjInstalled = True
SET testObj = NOTHING
Err = 0
End Function
Function cleanTime(str)
Dim re
Set re=new regExp
re.pattern="(\执行时间)(.*?)(\毫秒)"
re.IgnoreCase =false
re.Global=True
str=re.Replace(str,"")
cleanTime=str
End Function
%>
这是一个缓存页面的做法,有设置时间,你可以直接调用它的做法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)