我的一个程序在没有指定INTERNET_FLAG_RELOAD的情况下使用InternetOpenURL。我看到该调用将从缓存中读取网页(如果存在)。我在5天前更改了网页,但我仍然获得了缓存版本(除非我指定上面的标志。)有谁知道缓存何时或是否会更新?我希望它最终会被刷新(可能过于乐观!)
答案 0 :(得分:1)
原始资源可能有超过5天的过期日期,这就是为什么如果你没有告诉InternetOpenURL()
偶尔重新检查一次服务器,那么缓存版本会继续使用。但是,INTERNET_FLAG_RELOAD
强制它重新下载资源,无论它是否实际被修改过。这对你的需求来说可能有点过于暴力。请尝试使用INTERNET_FLAG_RESYNCHRONIZE
。这允许InternetOpenURL()
检查资源是否已被修改,然后仅在需要时重新下载,否则继续使用缓存副本。