3.4 Deno网络平台api

Deno的目标是使用网络平台API(例如fetch),而不是发明新的专有API。这些API通常遵循规范,并且与Chrome和Firefox中的实现相匹配。在某些情况下,由于Deno具有不同的安全模型,因此略微偏离规范是有意义的。

以下是Deno实现的网络平台API的列表:

fetch api

概述

fetchAPI可用于发出HTTP请求。它是按照WHATWGfetch规范中指定的方式实现的。

您可以在MDN上找到有关此API的文档 。

规范偏差

  • Deno用户代理没有cookie包。这样,set-cookie 响应上的标头不会被处理,也不会从可见的响应标头中过滤出来。
  • Deno不遵循同源策略,因为Deno用户代理当前没有起源的概念,并且它没有cookie包。这意味着Deno不需要采取措施防止利用身份验证的数据跨源泄漏。因此,Deno无法实现WHATWGfetch规范的以下部分:
    • 章节3.1\. 'Origin' header
    • 章节3.2\. CORS protocol
    • 章节3.5\. CORB
    • 章节3.6\. 'Cross-Origin-Resource-Policy' header
    • Atomic HTTP redirect handling.
    • opaqueredirect响应类型。
  • 一个fetchredirect的模式manual将返回一个basic响应,而不是opaqueredirect反应。

CustomEventEventTargetEventListener

概述

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.tslib.deno.window.d.ts 文件中找到已实现的Web API的TypeScript定义 。

可以在lib.deno.worker.d.ts 文件中找到特定于工作人员的定义 。

你可能感兴趣的:(3.4 Deno网络平台api)