边缘开发者平台
  • 边缘函数
    • 概述
    • 快速指引
    • 操作指引
      • 函数管理
      • Web Debugging
      • 触发配置
      • Environment Variable
    • Runtime APIs
      • addEventListener
      • Cache
      • Cookies
      • Encoding
      • Fetch
      • FetchEvent
      • Headers
      • Request
      • Response
      • Streams
        • ReadableStream
        • ReadableStreamBYOBReader
        • ReadableStreamDefaultReader
        • TransformStream
        • WritableStream
        • WritableStreamDefaultWriter
      • Web Crypto
      • Web standards
      • Images
        • ImageProperties
    • 示例函数
      • Example Overview
      • 301 Redirect
      • Obtaining Client URL Information
      • Customization Based on Client Geo Location
      • Obtaining Client Geo Location Information
      • Batch Redirect
      • 返回 HTML 页面
      • 返回 JSON
      • Fetch 远程资源
      • 请求头鉴权
      • 修改响应头
      • AB 测试
      • 设置 Cookie
      • 基于请求区域重定向
      • Cache API 使用
      • 缓存 POST 请求
      • 流式响应
      • 合并资源流式响应
      • 防篡改校验
      • m3u8 改写与鉴权
      • 图片自适应缩放
      • 图片自适应 WebP
      • 自定义 Referer 限制规则
      • 远程鉴权
      • HMAC 数字签名
      • 自定义下载文件名
      • 获取客户端 IP
    • 最佳实践
      • 通过边缘函数实现自适应图片格式转换

Web standards

边缘函数基于 V8 JavaScript 引擎设计实现的 Serverless 代码执行环境,提供了以下标准化的 Web APIs。

JavaScript 标准内置对象

边缘函数支持所有 JavaScript 标准内置对象,详情参见 MDN 官方文档:JavaScript Standard built-in objects

URL

const urlInfo = new URL('https://www.tencentcloud.com/');
URL API 用于解析,构造,规范化和编码 URL,详情参见 MDN 官方文档:URL

Blob

const blob = new Blob(['hello', 'world'], { type: 'text/plain' });
Blob API 表示不可变、原始数据的类文件对象,详情参见 MDN 官方文档:Blob

Base64

btoa

function btoa(data: string | ArrayBuffer | ArrayBufferView): string;
执行 base64 编码,不支持 Unicode 字符串,详情参见 MDN 官方文档:btoa

atob

function atob(data: string): string;
执行 base64 解码,不支持 Unicode 字符串,详情参见 MDN 官方文档:atob

btoaUTF8

function btoaUTF8(data: string): string;
执行 base64 编码,支持 Unicode 字符串。

atobUTF8

function atobUTF8(data: string): string;
执行 base64 解码,不支持 Unicode 字符串。

定时器

setTimeout

setTimeout(func: function): number;
setTimeout(func: function, delay: number): number;
setTimeout(func: function, delay: number, ...args: any[]): number;
普通定时器,在定时器到期执行指定函数,详情参见 MDN 官方文档:setTimeout

clearTimeout

clearTimeout(timeoutID: number): void;
清除指定 timeoutID 的普通定时器,详情参见 MDN 官方文档:clearTimeout

setInterval

setInterval(func: function): number;
setInterval(func: function, delay: number): number;
setInterval(func: function, delay: number, ...args: any[]): number;
循环定时器, 每次定时器到期后执行指定函数,详情参见 MDN 官方文档:setInterval

clearInterval

clearInterval(intervalID: number): void;
清除一个循环定时器,详情参见 MDN 官方文档:clearInterval

setImmediate

setImmediate(func: function): number;
setImmediate(func: function, ...args: any[]): number;
即时定时器, 在边缘函数栈清空之后执行指定函数,详情参见 MDN 官方文档:setImmediate

clearImmediate

clearImmediate(immediateID: number): void;
清除一个即时定时器,详情参见 MDK 官方文档:clearImmediate

事件发布与订阅

EventTarget

const eventTarget = new EventTarget();
事件发布与订阅,详情参见 MDN 官方文档:EventTarget

Event

const event = new Event('type name');
基础事件,详情参见 MDN 官方文档:Event

中止信号与控制器

AbortSignal

const signal = AbortSignal.abort();
中止信号,详情参见 MDN 官方文档:AbortSignal

AbortController

const controller = new AbortController();
中止控制器,详情参见 MDN 官方文档:AbortController

解压缩流

CompressionStream

const { readable, writable } = new CompressionStream('gzip');
压缩数据流,支持 gzip, deflate, br 压缩方法,详情参见 MDN 官方文档:CompressionStream

DecompressionStream

const { readable, writable } = new DecompressionStream('gzip');
解压数据流,支持 gzip, deflate, br 解压方法,详情参见 MDN 官方文档:DecompressionStream