QWebEngineView删除缓存和cookie的方案

本文探讨了QT中QWebEngineView模块在服务器关闭后仍显示网页的问题,揭示其内置缓存机制,并提供了代码示例,展示如何清除缓存及禁用缓存功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题记:最近公司开发产品用到了qt的QWebEngineView的相关模块,但是当我们把服务器关闭了,QWebEngineView还有网页上显示,查阅了大量资料,终于找到了原因?写一遍博客,记录一下开发过程。

QT的QWebEngineView内部提供了一种缓存机制,当用户浏览网页时会自动把网页的内容缓存一份到本地的C:\Users\zhangsan\AppData\Local\路径下,下次如果网络请求不到时,QWebEngineView会自动加载缓存中的数据,所以需要用户手动的删除这个目录,或者用代码来实现删除这个目录,手动不予说明,代码删除过程如下。

QWebEngineProfile * engineProfile = m_webView->page()->profile();
	engineProfile->clearHttpCache(); //删除缓存 

	QWebEngineCookieStore *cookie = engineProfile->cookieStore();
	cookie->deleteAllCookies(); //删除cookie 

	QString cachePath = engineProfile->cachePath();
	QDir cachePathDir(cachePath);
	if (cachePathDir.exists())
	{
		bool rlt = cachePathDir.rmdir(cachePath); //删除缓存目录
		if (!rlt)
		{
			qDebug() << QStringLiteral("删除缓存目录失败!");
		}
	}

也可以关掉缓存

	QWebEngineSettings * webEngineSettings = m_webView->settings();
	webEngineSettings->setAttribute(QWebEngineSettings::LocalStorageEnabled, false); //关闭缓存

但是这段代码可能导致webEngine 加载网页失败

<think>我们参考用户提供的两个引用,以及用户的问题“如何在谷歌浏览器中清除缓存Cookie”,来给出具体步骤。 引用[1]提供了通过设置菜单清除指定网站Cookie的方法。 引用[2]提供了通过开发者工具清除Cookie的方法(但用户更可能使用常规方法,所以以引用[1]为主,引用[2]作为补充说明)。 注意:用户之前的问题是关于智慧芽搜索限制的破除,其中提到“清除浏览器缓存Cookie恢复基础额度”,所以这里用户需要的是清除整个缓存Cookie(而不仅仅是某个网站),但用户提供的引用是指定网站的清除。因此,我们既要给出清除整个缓存Cookie的方法,也要给出清除指定网站(如智慧芽)的方法,因为用户可能两种情况都需要。 步骤将分为两部分: 1. 清除整个缓存Cookie(适用于恢复基础额度,但会清除所有网站的登录状态等) 2. 清除指定网站的缓存Cookie(只针对智慧芽,不影响其他网站) 我们将按照谷歌浏览器(以最新版本为例)的操作步骤进行说明。 注意:由于浏览器版本更新,菜单可能略有不同,但基本路径一致。 第一部分:清除整个缓存Cookie 步骤: 1. 打开谷歌浏览器,点击右上角的三个点(更多)图标。 2. 选择“设置”。 3. 在设置页面左侧菜单中,选择“隐私安全”。 4. 在右侧找到“清除浏览数据”(或类似选项)。 5. 在打开的对话框中,选择时间范围(例如“所有时间”)。 6. 勾选“Cookie及其他网站数据”缓存的图片文件”。 7. 点击“清除数据”按钮。 第二部分:清除指定网站的缓存Cookie(针对智慧芽) 步骤(参考引用[1]): 1. 打开谷歌浏览器,点击右上角的三个点(更多)图标。 2. 选择“设置”。 3. 在设置页面的搜索框中输入“Cookie”,然后选择“Cookie 网站数据”或类似选项(或者直接进入“网站设置”)。 4. 在“Cookie 网站数据”下,选择“查看所有网站数据权限”。 5. 在搜索框中输入智慧芽的域名,例如“zhihuiya.com”(或其他相关域名)。 6. 找到该网站后,点击右侧的垃圾桶图标即可删除该网站的Cookie存储的数据。 7. 另外,也可以点击该网站条目,进入后单独清除缓存(如果有的话)。 另外,引用[2]提到使用开发者工具清除缓存Cookie的方法,但这种方法相对复杂,普通用户使用设置菜单更合适。因此,我们主要推荐设置菜单的方法。 注意:清除缓存Cookie后,需要重新登录智慧芽等网站。 最后,我们生成相关问题。</think>以下是谷歌浏览器清除缓存Cookie的完整操作指南,分为常规方法开发者工具方法两种方案: ### 方案一:常规设置清除法 1. **打开设置菜单** - 点击右上角⋮ > 选择「设置」 - 地址栏输入:`chrome://settings/content/all` 直达 2. **清除特定网站数据** ```mermaid graph LR A[设置] --> B[隐私安全] B --> C[Cookie及网站数据] C --> D[查看所有网站数据] D --> E[搜索“zhihuiya”] E --> F[点击垃圾桶图标] ``` 3. **清除全部缓存** - 在`chrome://settings/clearBrowserData`页面: - 时间范围:选择「时间不限」 - 勾选「缓存的图片文件」 - 勾选「Cookie及其他网站数据」 - 点击「清除数据」[^1] ### 方案二:开发者工具清除法(快速) 1. 打开智慧芽网站后按 **F12** 2. 在开发者工具界面: ```mermaid graph TB G[Network面板] --> H[禁用缓存✔] I[Application面板] --> J[Clear storage] J --> K[勾选Cookies/Cache] J --> L[点击Clear site data] ``` 3. 快捷键操作: `Ctrl+Shift+Del` > 勾选项目 > 点击清除[^2] ### 注意事项 1. 清除后需重新登录所有网站 2. 智慧芽额度通常在**24小时内**重置 3. 建议优先清除指定网站数据(引用[1]方法),避免影响其他网站登录状态 4. 若仍受限,可尝试`chrome://restart`强制重启浏览器 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值