Deno的目标是使用网络平台API(例如fetch
),而不是发明新的专有API。这些API通常遵循规范,并且与Chrome和Firefox中的实现相匹配。在某些情况下,由于Deno具有不同的安全模型,因此略微偏离规范是有意义的。
以下是Deno实现的网络平台API的列表:
fetch
api
概述
该fetch
API可用于发出HTTP请求。它是按照WHATWGfetch
规范中指定的方式实现的。
您可以在MDN上找到有关此API的文档 。
规范偏差
- Deno用户代理没有cookie包。这样,
set-cookie
响应上的标头不会被处理,也不会从可见的响应标头中过滤出来。 - Deno不遵循同源策略,因为Deno用户代理当前没有起源的概念,并且它没有cookie包。这意味着Deno不需要采取措施防止利用身份验证的数据跨源泄漏。因此,Deno无法实现WHATWG
fetch
规范的以下部分:- 章节
3.1\. 'Origin' header
。 - 章节
3.2\. CORS protocol
。 - 章节
3.5\. CORB
。 - 章节
3.6\. 'Cross-Origin-Resource-Policy' header
。 -
Atomic HTTP redirect handling
. - 该
opaqueredirect
响应类型。
- 章节
- 一个
fetch
用redirect
的模式manual
将返回一个basic
响应,而不是opaqueredirect
反应。
CustomEvent
,EventTarget
和EventListener
概述
DOM事件API可用于分发和侦听应用程序中发生的事件。它是按照WHATWG DOM规范中指定的方式实现的 。
您可以在MDN上找到有关此API的文档 。
定义偏差
- 事件不会冒泡,因为Deno没有DOM层次结构,所以没有树可以使事件冒泡/捕获。
Web Worker API
概述
WebWorker API可用于在单独的线程中执行代码。它是按照WHATWG HTML规范中指定的方式实现的 。
您可以在MDN上找到有关此API的文档 。
规范偏差
- 当前不支持从Blob URL创建工作程序。
- 当前发布的数据将序列化为JSON而不是结构化克隆。
- 当前,对象所有权无法在工作人员之间转移。
其他API
- Blob
- Console
- FormData
- Performance
- setTimeout,setInterval,clearInterval
- Streams_API
- URL
- URLSearchParams
- WebSocket
typings
可以在lib.deno.shared_globals.d.ts
和 lib.deno.window.d.ts
文件中找到已实现的Web API的TypeScript定义 。
可以在lib.deno.worker.d.ts
文件中找到特定于工作人员的定义 。