微博H5缓存来自HTTP Cache、Service Worker及浏览器存储(localStorage/indexedDB);需在浏览器设置中清除weibo.com域名数据,或手动卸载Service Worker并关闭所有相关标签页。

微博 H5 页面缓存从哪来?
微博 HTML5 版本(即通过手机浏览器访问 weibo.com 或 m.weibo.cn)的缓存主要来自三处:HTTP Cache(服务端设置的 Cache-Control、ETag)、Service Worker(部分页面已注册,用于离线加载)、以及浏览器自身的 localStorage / indexedDB(存储用户登录态、Feed 列表、评论草稿等)。这些不会出现在 App 的「清理缓存」入口里,得进浏览器本身处理。
Chrome / Edge / Safari 浏览器怎么清微博 H5 缓存?
不同系统操作路径差异大,关键不是找“微博专属按钮”,而是清对应域名的数据:
- Android Chrome:进入
chrome://settings/siteData→ 搜索weibo.com或m.weibo.cn→ 点击条目 → 选中Cache、Service Workers、IndexedDB、Local Storage→ 点击Remove - iOS Safari:设置 → Safari → 清除历史记录与网站数据(⚠️这是全量清除,无法单独清微博);更准的办法是:Safari 打开微博 → 点右下角分享图标 → 滑到底部点
网站设置→ 关闭允许网站存储数据(下次刷新会自动清空) - 国内定制浏览器(如 UC、QQ 浏览器):基本不开放细粒度控制,只能进「隐私中心」→「清理浏览数据」→ 勾选「网页缓存」「网站数据」→ 清理
为什么硬刷(Ctrl+F5 / 下拉刷新)没用?
因为微博 H5 大量依赖前端缓存策略:
-
Service Worker会拦截网络请求并返回旧缓存,即使你刷新,它也可能不触发更新逻辑 -
localStorage里存的feed_timestamp或user_session过期时间可能被设为 7 天,不手动删就一直用旧数据 - CDN 返回的响应头含
Cache-Control: public, max-age=31536000(1 年),浏览器根本不会重发请求
真正生效的操作只有两个:在浏览器设置里删掉该域名所有数据,或在控制台强制 unregister Service Worker:
立即学习“前端免费学习笔记(深入)”;
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(regs => {
regs.forEach(reg => reg.unregister());
});
}
清理后登录态丢失、首页空白怎么办?
这是正常现象——微博把登录凭证(SSO login status)、用户信息(user_profile)、甚至首页骨架都存在 localStorage 和 indexedDB 里。清完必须重新登录,且首次加载会变慢(所有 JS/CSS/JSON 都要重下)。更隐蔽的问题是:Service Worker 卸载后,如果页面没完全关闭,残留的 worker 可能还在后台运行,导致后续请求仍走缓存。建议清理后彻底关闭所有微博相关 Tab,再重启浏览器。










