InternetOpenURL 的默认缓存刷新时间是多少?
Posted
技术标签:
【中文标题】InternetOpenURL 的默认缓存刷新时间是多少?【英文标题】:What is the default cache refresh time of InternetOpenURL? 【发布时间】:2013-06-11 13:19:49 【问题描述】:我的一个程序使用 InternetOpenURL,但没有指定 INTERNET_FLAG_RELOAD。我看到该调用将从缓存中读取网页(如果存在)。我 5 天前更改了网页,但我仍然得到缓存版本(除非我指定上面的标志。)有谁知道缓存何时或是否会更新?我希望它最终会被刷新(可能过于乐观!)
【问题讨论】:
【参考方案1】:很可能原始资源的过期日期超过 5 天,这就是如果您不告诉InternetOpenURL()
不时重新检查服务器,缓存版本会继续使用的原因。但是,INTERNET_FLAG_RELOAD
会强制它重新下载资源,无论它是否实际被修改过。对于您的需求,这可能有点过于暴力。尝试改用INTERNET_FLAG_RESYNCHRONIZE
。这允许InternetOpenURL()
检查资源是否已被修改,然后仅在需要时重新下载,否则继续使用缓存的副本。
【讨论】:
感谢 Remy,感谢您提供有关 RESYNCHRONIZE 的说明。有没有办法确定缓存页面的到期日期?它是由网络服务器设置的吗?我已经搜索过,似乎没有找到任何关于它的信息。基本上我想知道新版本是否会被我没有设置标志的 InternetOpenURL 调用获取。 缓存管理和过期可以由Web服务器设置,是的。检查共振标题。最终,InternetOpenURL() 应该重新检查原始资源,尽管偶尔强制它一次是个好主意,以防万一。以上是关于InternetOpenURL 的默认缓存刷新时间是多少?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 上的 InternetOpenUrl 功能是不是足够安全?如果没有,如何让它变得更强?