xmlhttp的缓冲怎么这么顽固

木头是猫 2011-04-01 03:22:32

function getHTTPPage(url)
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,"utf-8")
set Http=nothing
if err.number<>0 then err.Clear
'测试浏览
response.write url&"<br><br>"
response.write getHTTPPage
response.end()
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


URL加了时间戳url&"&d="&now()
Http.setRequestHeader "If-Modified-Since","0"
2种方法都无效
本地和服务器测试都是会读取上一次的缓存
快崩溃了 百度 GOOLE CSDN 都搜不到有效的解决方法
...全文
85 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhtapmys 2011-04-02
  • 打赏
  • 举报
回复
神奇的BUG,
经常出现还是今天才出现?
后者可以清下所有能清的,重启IIS or 重启PC
kaifadi 2011-04-02
  • 打赏
  • 举报
回复
set Http=server.createobject("MSXML2.XMLHTTP")
Http.async=true或者改为:Http.async=false'加这条试一下!
Http.open "get",url,false
Http.send()

木头是猫 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hookee 的回复:]
asp页面本身有没有被缓存?
Response.Expires = 0
[/Quote]
直接用ASP浏览是没问题的
也设置过Response.Expires = 0 或 Response.Expires = -100 或 Response.Expires = -1
但xmlhttp还是很顽固
hookee 2011-04-01
  • 打赏
  • 举报
回复
asp页面本身有没有被缓存?
Response.Expires = 0
木头是猫 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hookee 的回复:]
服务器端可以用 CreateObject("Msxml2.ServerXMLHTTP")
url = url & "&" & Escape(Now())
[/Quote]

一样没有效果
木头是猫 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hongmei85 的回复:]
直接用ie浏览url&"&d="&now(),看看是否有不同的浏览结果
[/Quote]
假设后台更新了标题,用IE直接浏览是变化了,但用xmlhttp获取每次却都是上次修改的内容

比如现在标题为ABC,修改为DDD,用IE直接浏览已经是DDD,但xmlhttp却还是ABC,再改次为FFF,IE浏览是最新的FFF,但xmlhttp取得的是DDD
木头是猫 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 anlige 的回复:]
set Http=server.createobject("MSXML2.serverXMLHTTP")
然后加一个随机参数发送到服务器
[/Quote]
这个跟2楼的方法一样 试过了 无效 - -!
hookee 2011-04-01
  • 打赏
  • 举报
回复
服务器端可以用 CreateObject("Msxml2.ServerXMLHTTP")
url = url & "&" & Escape(Now())
hongmei85 2011-04-01
  • 打赏
  • 举报
回复
直接用ie浏览url&"&d="&now(),看看是否有不同的浏览结果
Anlige 2011-04-01
  • 打赏
  • 举报
回复
set Http=server.createobject("MSXML2.serverXMLHTTP")
然后加一个随机参数发送到服务器
木头是猫 2011-04-01
  • 打赏
  • 举报
回复
还有没有其它方法或思路呢?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧