WPF中CefSharp浏览器如何实现Ctrl+F5强制刷新清缓存效果
CefSharp WPF 实现强制无缓存加载方案
以下是几种不同场景的实现方式,可按需选择:
全局禁用缓存(适合全应用不需要资源缓存的场景)
该配置需要在Cef首次初始化时设置,运行过程中修改无效:
var settings = new CefSettings { // 禁用磁盘缓存,所有资源仅临时存储在内存,进程退出后自动清除 CachePath = null, PersistSessionCookies = false, PersistUserPreferences = false }; Cef.Initialize(settings);
单次请求强制刷新(和浏览器Ctrl+F5效果完全一致,适合仅特定页面需要拉取最新资源的场景)
在组件加载时调用以下任意一种方法即可:
- 直接调用带忽略缓存参数的重载刷新方法:
// ignoreCache设为true即等价于Ctrl+F5的强制刷新效果 chromiumWebBrowser.Reload(ignoreCache: true);
- 如果是首次加载指定地址,也可以手动构造带禁用缓存头的请求:
var request = new Request { Url = "你的目标页面地址", Headers = new HeaderDictionary { ["Cache-Control"] = "no-cache, no-store, must-revalidate", ["Pragma"] = "no-cache", ["Expires"] = "0" } }; chromiumWebBrowser.LoadRequest(request);
运行时主动清除已有缓存(适合需要动态清理之前已经生成的缓存的场景)
// 异步清除所有内存、磁盘缓存,等待清除完成后再加载页面 await Cef.GetGlobalRequestContext().ClearCacheAsync(); chromiumWebBrowser.Load("你的目标页面地址");
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

