bfcache

往返缓存 bfcache

bfcache 是内存缓存,可在用户离开网页时存储网页(包括 JavaScript 堆)的完整快照。将整个页面保存在内存中后,当用户决定返回时,浏览器就可以快速轻松地恢复该页面。

  • 暂停执行 JavaScript 任务队列中的所有待处理任务,从 bfcache 中恢复时继续执行
  • 监听 bfcache
    • 使用 pageshow 和 pagehide 事件
  • 阻止浏览器进行 bfcache 优化
    • 使用 unload 事件
    • 使用 Cache-Control: no-store, 可以使用 Cache-Control: no-cacheCache-Control: max-age=0 替代
    • 使用 window.opener 或 window.postMessage() 进行跨页面引用
  • 推荐用法
    • 在 pagehide 时,关闭 fetch/xhr 请求,indexedDB 连接,WebSocket/WebRTC 连接,在 pageshow 时重新连接
    • 确实部署前在 devtools 中测试