本文档介绍边缘函数运行时支持的标准 Web API。
TextEncoder 仅支持把 Unicode Codepoint 转换为 UTF-8 编码的字节流。TextDecoder 仅支持把 UTF-8、GB2312、GBK 编码的字节流转换为 Unicode Codepoint。
参见 MDN 文档 TextEncoder 和 TextDecoder。
您可以使用这些方法在指定的时间延迟后执行回调函数,或者在指定的时间间隔内重复执行回调函数。
tip
为了防止基于高精度时间戳的侧信道攻击(例如 Spectrum 攻击),这些方法会主动调整时间精度,不支持高精度时钟。
参见以下 MDN 文档:
运行时为每个请求上下文设置的对象,每个请求上下文有一个互相不可见的 session 全局对象。session 包含以下属性:
addEventListener('fetch', (event) => { event.respondWith(handle(event)); }); async function handle(event) { const table = session.context; // 每次请求的context都是不一样的,互相独立 table.set("my-own-data", session.requestId); }
参见 MDN 文档 URL。
说明
出于安全原因,URL 的每个部分都有内存阈值设置,如果您遇到问题,可以通过创建工单更改配置。
参见 MDN 文档 URLSearchParams。
参见 MDN 文档 URLPattern。
参见 MDN 文档 console。
console 在每个请求上下文中被分配的存储容量默认为 1 KB,超过 1KB 的数据会被截断。该限制在调试环境下不生效。
console 支持以下方法:
一个指向当前运行时全局变量的只读变量。
例如,如果您调用 console.log() 打印 self:
console.log(self)
您会得到当前运行时范围内的所有对象:
Object {atob: "#function", btoa: "#function", setTimeout: "#function", setInterval: "#function", setImmediate: "#function", …} AbortController: "#function" AbortSignal: "#function" Blob: "#function" Body: "#function" CompressionStream: "#function" CronEvent: "#function" CryptoKey: "#function" CryptoKeyPair: "#function" DOMException: "#function" DecompressionStream: "#function" Event: "#function" EventTarget: "#function" ExtendableEvent: "#function" FetchEvent: "#function" File: "#function" FormData: "#function" Headers: "#function" HtmlComment: "#function" HtmlDocend: "#function" HtmlDoctype: "#function" HtmlElement: "#function" HtmlEndElement: "#function" HtmlText: "#function" InternalErrorEvent: "#function" InternalEvent: "#function" ...
一个 Boolean 全局变量,表示当前运行环境是否边缘函数的运行时。您可以使用它来确定代码是否在边缘函数运行时中运行。
参见 MDN 文档 structuredClone()。
参见 MDN 文档 queueMicrotask()。
参见 MDN 文档 Navigator.userAgent。
参见 MDN 文档 DOMException。
参见 MDN 文档 Event。
参见 MDN 文档 EventTarget。
参见 MDN 文档 AbortSignal。
参见 MDN 文档 AbortController。
参见 MDN 文档 URL。