1

我的一个程序使用 InternetOpenURL 而没有指定 INTERNET_FLAG_RELOAD。我看到该调用将从缓存中读取网页(如果存在)。我 5 天前更改了网页,但我仍然得到缓存版本(除非我指定上面的标志。)有谁知道缓存何时或是否会更新?我希望它最终会被刷新(可能过于乐观!)

4

1 回答 1

1

很可能原始资源的过期日期超过 5 天,这就是为什么如果您不告诉偶尔InternetOpenURL()重新检查服务器,缓存版本会继续使用的原因。但是,INTERNET_FLAG_RELOAD无论是否实际修改过,都会强制它重新下载资源。对于您的需求,这可能有点过于暴力。尝试INTERNET_FLAG_RESYNCHRONIZE改用。这允许InternetOpenURL()检查资源是否已被修改,然后仅在需要时重新下载,否则继续使用缓存的副本。

于 2013-06-11T19:26:49.897 回答