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")
  1. b.com 的一個子幀在建立時從頂級的 512KiB 限制中收到 64KiB。
  2. c.com 的一個子幀未列出,因此在建立時從 128KiB 共享限制中收到 8KiB。
  3. 另外 15 個不同源的子幀在建立時將收到 8KiB(類似於 c.com)。
  4. 下一個子幀將不被授予任何配額。
  5. 如果其中一個子幀被移除,其延遲獲取將被髮送。
  6. 下一個子幀將收到 8KiB 配額,因為再次有可用配額。

完全撤銷最小配額

http
Permissions-Policy: deferred-fetch=(self "https://b.com")
Permissions-Policy: deferred-fetch-minimal=()
  1. b.com 的一個子幀在建立時收到 64KiB。
  2. c.com 的一個子幀在建立時未收到任何配額。
  3. 頂級文件及其同源後代最多可以使用完整的 640KiB,但如果建立了 b.com 子幀,則會減少到 574KiB。

規範

規範
Fetch
# available-deferred-fetch-quota

瀏覽器相容性

另見