FSO 组件asp生成html静态页面碰到缓存、cookies解决方法

   日期:2017-06-15

在用fso组件,把asp文件生成html静态页面的时候,碰到一个问题,就是无论怎么更新内容,生成的页面都不变,应该随着asp页面变化而变化才对。 以下是源代码:

<% 
Function GetaspPage(url) 
dim Retrievalx
Set Retrievalx = CreateObject("Microsoft.XMLHTTP") 
With Retrievalx 
.Open "Get", url, False ', "", "" 
.Send 
GetaspPage = BytesToBstr(.ResponseBody)
End With 
Set Retrievalx = Nothing 
End Function

Function BytesToBstr(body)
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 = "GB2312"
BytesToBstr = objstream.ReadText 
objstream.Close
set objstream = nothing
End Function

 

on error resume next
Url="http://上海IT外包/"&"abc.asp?""
wstr = GetaspPage(Url)

Set fs=Server.CreateObject("Scripting.FileSystemObject")
If (fs.FileExists(server.MapPath("/default.htm"))) Then
fs.DeleteFile(server.MapPath("/default.htm"))
End If
Set CrFi=fs.CreateTextFile(server.MapPath("/default.htm"))
Crfi.Writeline(wstr)
set CrFi=nothing
set fs=nothing
response.write "...<font color=red>生成网站首页完成!</font><p>"
Response.write "<a href='http://上海IT外包' >上海IT外包</a>"

%>

以上代码中,将:
Url="http://上海IT外包/"&"abc.asp""
wstr = GetaspPage(Url)

改为:
Url="http://上海IT外包/"&"abc.asp?time=&now()&""

Url="http://上海IT外包/"&"abc.asp?time="&now()


wstr = GetaspPage(Url)

即可解决这个问题

这个是HTTP的缓存造成的 

在Url="http://上海IT外包/"&"abc.asp"这个后面加一个随机参数就ok