确保该网页可以从往返缓存中恢复
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
背景
往返缓存 (bfcache) 会将相应网页的快照存储在内存中,以供系统在从导航历史记录中恢复该网页时使用。这可以显著加快向网页返回导航的速度,但是,某些浏览器 API(例如卸载监听器)可能会导致 bfcache 失败,从而正常加载网页。
Lighthouse 如何检测 bfcache 失败
独立导航
在独立导航结束时,Lighthouse 将离开,并尝试从导航历史记录中恢复页面,以检测是否正在使用 bfcache。
用户流
注意 :由于页面冻结的 bug ,Puppeteer 默认停用 bfcache。即使真实用户会看到从 bfcache 恢复的网页,Puppeteer 脚本也不会从 bfcache 恢复该网页。
运行用户流时,Lighthouse 不会主动测试导航中的 bfcache。这是因为,在每次导航结束时离开和返回页面,并不能反映页面上的大多数用户体验。
不过,您仍然可以测试时间跨度模式下的 bfcache 使用情况,方法是将历史记录导航添加为用户体验历程的一部分。例如:
const flow = await startFlow(page);
// This navigation will not test the bfcache
// because it is part of a user flow.
await flow.navigate('https://example.com');
// This timespan will try to restore the page from the bfcache.
// Problems restoring from the bfcache are surfaced in this report.
await flow.startTimespan();
await page.goto('https://example2.com');
await page.goBack();
await flow.endTimespan();
了解 bfcache 失败
如果该网页出于任何原因无法从 bfcache 恢复,审核将失败。Lighthouse 将列出 bfcache 无法使用的所有原因,以及导致问题的帧。失败原因可能是以下三种类型之一:
可操作 :您可以解决这些问题以启用缓存。
待提供支持 :Chrome 尚不支持这些功能,因此它们会阻止缓存。不过,Chrome 一旦支持此功能,便会解除这些限制。
不可处理 :您无法解决本页中的这些问题。网页控制范围之外的因素会阻止缓存。
资源
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-01-12。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2023-01-12\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2023-01-12。"]]