Permissions-Policy: deferred-fetch 指令
deferred-fetch Permissions-Policy 指令是 fetchLater() API 的一部分。
此指令与 deferred-fetch-minimal 一起,决定了总共 640KiB 的配额限制如何在顶级源及其跨源子帧之间分配。默认情况下,顶级源被授予 512KiB,每个跨源子帧从剩余的 128KiB 中被授予 8KiB。deferred-fetch 权限策略可以允许子帧源从顶级的 512KiB 配额中获得更大的 64KiB 配额,而不是它们默认将获得的 8KiB 最小配额。
有关更多详细信息和示例,请参阅 fetchLater() 配额。
语法
http
Permissions-policy: deferred-fetch=(self)
Permissions-policy: deferred-fetch=(self <url-list>)
Permissions-policy: deferred-fetch=(<url-list>)
<url-list>-
以空格分隔的源列表(每个源都用引号括起来),这些源被授予从父级主配额中获取的 64KiB 更高配额。64KiB 配额在子帧创建时获取。
一个跨源子帧可以将其整个配额委托给其一个跨源子帧后代授予 deferred-fetch。这仅在当前未占用任何配额时才有效。
权限策略检查与配额检查无法区分。如果配额实际超出,或者通过权限策略限制了该源的配额,调用 fetchLater() 都将抛出 QuotaExceededError。
默认策略
deferred-fetch 的默认允许列表是 self。
示例
有关更多示例,请参阅 fetchLater() 配额。
使用最小配额
http
Permissions-Policy: deferred-fetch=(self "https://b.com")
b.com的一个子帧在创建时从顶级的 512KiB 限制中收到 64KiB。c.com的一个子帧未列出,因此在创建时从 128KiB 共享限制中收到 8KiB。- 另外 15 个不同源的子帧在创建时将收到 8KiB(类似于
c.com)。 - 下一个子帧将不被授予任何配额。
- 如果其中一个子帧被移除,其延迟获取将被发送。
- 下一个子帧将收到 8KiB 配额,因为再次有可用配额。
完全撤销最小配额
http
Permissions-Policy: deferred-fetch=(self "https://b.com")
Permissions-Policy: deferred-fetch-minimal=()
b.com的一个子帧在创建时收到 64KiB。c.com的一个子帧在创建时未收到任何配额。- 顶级文档及其同源后代最多可以使用完整的 640KiB,但如果创建了
b.com子帧,则会减少到 574KiB。
规范
| 规范 |
|---|
| Fetch # available-deferred-fetch-quota |
浏览器兼容性
加载中…