美文网首页
<计算机与网络篇> bfcache

<计算机与网络篇> bfcache

作者: Max_Law | 来源:发表于2024-01-18 09:37 被阅读0次

    浏览器的 Back/Forward cache(也称为 bfcache)是一种优化技术,旨在提高用户在浏览网页时的体验,特别是在进行前进(forward)和后退(back)导航操作时。

    当用户在浏览器中访问一个网页后点击链接或者输入新的 URL 前往另一个页面时,浏览器通常会销毁或丢弃前一个页面的状态信息,包括 DOM 结构、JavaScript 执行环境以及可能的 AJAX 请求结果等。当用户随后点击后退按钮返回到先前的页面时,浏览器需要重新发起网络请求,解析 HTML,构建 DOM 树,执行 JavaScript 代码,这可能会导致一定的延迟和性能损耗。

    Back/Forward cache 就是为了改善这种情况而引入的。以下是其工作原理和特点:

    特性 描述
    保存页面状态 浏览器在 bfcache 中存储离开页面时的完整状态,包括 DOM 树、样式信息、JavaScript 变量值及滚动位置等
    快速恢复 用户通过后退/前进按钮返回已缓存页面时,浏览器直接从 bfcache 恢复页面状态,显著提升页面显示速度
    有条件缓存 并非所有页面都适合缓存到 bfcache,如使用不兼容技术(定时器、音频视频播放、WebSocket)或有未完成任务的页面可能不被缓存
    无脚本执行 页面从 bfcache 恢复时通常不会重新执行 JavaScript 代码,JavaScript 环境保持冻结直至用户再次离开并返回
    容量限制 bfcache 存储量有限,浏览器根据内存等因素自动管理缓存页面,满载时会移除旧页面以释放空间
    跨域限制 考虑安全性,跨域 iframe 通常不会被 bfcache 存储
    开发者控制 开发者可通过特定 HTTP 头部或 JavaScript API 控制页面是否应被 bfcache 缓存

    Back/Forward cache 的实现和行为可能在不同的浏览器中有所不同。例如,截至 2023 年,谷歌 Chrome 浏览器已经支持并默认开启了该功能(但早期可能需要手动启用实验性选项)。通过理解并优化对 bfcache 的支持,开发者可以提升其网站或应用的用户体验和性能。

    相关文章

      网友评论

          本文标题:<计算机与网络篇> bfcache

          本文链接:https://www.haomeiwen.com/subject/pbilndtx.html