当前位置: 首页 > news >正文

浏览器控制台如何清缓存重加载

你说得对!首次访问才是关键测试。让我们科学测试一下。

测试步骤

步骤1:清除所有缓存

在控制台执行:

// 清除所有存储
localStorage.clear()
sessionStorage.clear()// 清除 IndexedDB(如果有)
indexedDB.databases().then(dbs => {dbs.forEach(db => indexedDB.deleteDatabase(db.name))
})// 清除 service worker 缓存
if (navigator.serviceWorker) {navigator.serviceWorker.getRegistrations().then(regs => {regs.forEach(reg => reg.unregister())})
}// 清除 application cache(旧API)
if (window.applicationCache) {window.applicationCache.abort()
}console.log('🧹 所有缓存已清除')

步骤2:添加网络请求监控

在控制台执行(在刷新页面前):

// 监控所有网络请求
const requestTimestamps = {}// 拦截 fetch
const originalFetch = window.fetch
window.fetch = function(...args) {const url = args[0]const startTime = performance.now()console.log(`🚀 fetch 请求开始: ${url}`, {时间: startTime.toFixed(2) + 'ms',参数: args[1] || {}})return originalFetch.apply(this, args).then(response => {const endTime = performance.now()console.log(`✅ fetch 请求完成: ${url}`, {耗时: (endTime - startTime).toFixed(2) + 'ms',状态: response.status})return response})
}// 拦截 XMLHttpRequest
const originalXHROpen = XMLHttpRequest.prototype.open
const originalXHRSend = XMLHttpRequest.prototype.sendXMLHttpRequest.prototype.open = function(method, url) {this._requestUrl = urlthis._requestMethod = methodthis._startTime = performance.now()console.log(`🚀 XHR 请求开始: ${method} ${url}`, {时间: this._startTime.toFixed(2) + 'ms'})return originalXHROpen.apply(this, arguments)
}XMLHttpRequest.prototype.send = function(body) {const url = this._requestUrlthis.addEventListener('load', function() {const endTime = performance.now()console.log(`✅ XHR 请求完成: ${url}`, {耗时: (endTime - this._startTime).toFixed(2) + 'ms',状态: this.status,响应大小: this.responseText?.length || 0})})return originalXHRSend.apply(this, arguments)
}console.log('🔍 网络请求监控已开启')

步骤3:添加性能标记

// 标记关键时间点
performance.mark('test-start')
console.log('⏱️ 测试开始时间戳:', performance.now())// 标记主题相关事件
const originalThemeImmediate = window.applyThemeImmediately
window.applyThemeImmediately = async function() {performance.mark('theme-immediate-start')console.log('🎨 applyThemeImmediately 开始')const result = await originalThemeImmediate?.()performance.mark('theme-immediate-end')const measure = performance.measure('theme-immediate-duration','theme-immediate-start','theme-immediate-end')console.log('🎨 applyThemeImmediately 结束,耗时:', measure.duration.toFixed(2) + 'ms')return result
}// 标记基础配置
const originalBasicConfigInit = window.basicConfig?.initialize
if (window.basicConfig) {window.basicConfig.initialize = async function() {performance.mark('basic-config-start')console.log('📋 basicConfig.initialize 开始')const result = await originalBasicConfigInit.call(this)performance.mark('basic-config-end')const measure = performance.measure('basic-config-duration','basic-config-start','basic-config-end')console.log('📋 basicConfig.initialize 结束,耗时:', measure.duration.toFixed(2) + 'ms')return result}
}

步骤4:刷新页面并观察

按 F5 或执行:

location.reload(true)  // 强制刷新,忽略缓存
http://www.jsqmd.com/news/82687/

相关文章:

  • django基于django的社区设备报修住户反馈智能预测系统
  • Dashboard
  • AI Agent系列-Google AI Agent学习-安全与治理:Agent 是新的「主体」
  • AI写论文哪个软件最好?我们不做“生成速度”比拼,而是用答辩评委的视角,看哪款工具产出的内容真正经得起追问
  • 5分钟搞定视频方向问题:ffmpeg-python零基础修复方案
  • 2025 年网络安全学习路线:从零基础到实战大神,避开 90% 的坑。从零基础入门到精通,收藏这一篇就够了!
  • 从AI对话中总结技术文档-档提示词
  • KataGo围棋AI完整使用指南:从安装到对弈的终极教程
  • 《零基础学 PHP:从入门到实战》· PHP接口开发与前后端分离实战-搭建PHP开发环境与语法初探
  • 61、事件驱动的套接字编程与相关技术
  • Ubuntu 20.04终极指南:快速解决L515相机RealSense SDK兼容性问题
  • 济南申请实用新型专利申请条件
  • Wan2.2 Fun-VACE视频生成技术完整指南:从入门到精通
  • 32、Red Hat认证考试备考指南
  • PicView图片查看器:5个步骤快速掌握高效图片管理技巧
  • 字节转换革命:如何让数据大小显示更人性化?
  • NCHUD-数字电路模拟程序
  • 解放开发效率!Access 2010数据库引擎独立版深度解析 [特殊字符]
  • Seelen-UI插件完全指南:从入门到精通的桌面定制手册
  • 量化金融面试实用指南:从入门到精通的完整解决方案
  • 还在为文件管理烦恼?oil.nvim让文件操作像编辑文本一样简单
  • Kimi-VL-A3B-Thinking-2506终极指南:如何在多模态AI中实现更智能的思考
  • Simditor富文本编辑器:打造流畅的浏览器端文本编辑体验
  • 62、Python CGI编程及相关技术详解
  • 济南市发明专利和实用新型专利的根本区别
  • 2025年度五大实力强的烹饪专业学校排行榜,厨师培训优质机构 - mypinpai
  • RpcView终极使用指南:快速掌握Windows RPC接口分析技术
  • 11、网络配置与防火墙搭建指南
  • 从踩坑到填坑:Taro项目迁移微信小程序Skyline渲染模式实战经验
  • 芋道云:企业级微服务架构的智能化演进之路