以浏览器 fetch 实现非阻塞的网页请求接口,结果进入统一事件队列。
源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。
# 网页请求浏览器适配 `请求。豫` 实现[网页请求接口](../../../豫言操作系统接口/网页请求/规范.汉语.md)的全部函数:`发起网页请求`、`取消网页请求`、`请求网页文字`。`实现接口。豫` 固定公共包身份与版本,接口检查器须在构建前核对签名。 **宿主原语**:适配只调用 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(需要等待的操作)两个原语,操作名为 `请求.发起`、`请求.取消`(同步)与 `请求.同步`(异步,经 `豫言_浏览器_网页能力异步`);失败以(阴,错误文)返回,再由本适配转成豫言事故,不让 JavaScript 异常越过 Wasm 边界。 **宿主实现**:`宿主/浏览器/宿主.mjs` 的 `创建网页能力`。宿主用注入的 `网络`(默认 `fetch`)发出请求,固定 `credentials:same-origin`、`mode:same-origin`,读流时逐块累计字节并在超过上限时取消,正文按严格 UTF-8 解码;结果作为类型“请求”的事件投递(订阅号为请求号),取消时同时移除队列里未取走的结果;并发上限 32(含尚未取走结果的请求)。阻塞变体不产生事件。 **运行要求**:等待类函数挂起豫言栈,浏览器须支持 JSPI;八个新包与网页事件包共用同一个统一事件队列。 **验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用 `前端接口探针`、宿主单元测试与 JSDOM+真实 Wasm 的一致性测试,说明见其中的 `说明.汉语.md`)。
# 网页请求浏览器适配 `请求。豫` 行[网页请求之约](../../../豫言操作系统接口/网页请求/规范.文言.md)之诸函数:`发起网页请求`、`取消网页请求`、`请求网页文字`。`实现接口。豫` 定公共包之身与版,接口检查器当于构建前核其签。 **宿主原语**:适配惟调 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(须候者)二原语,操作名为 `请求.发起`、`请求.取消`(同步)与 `请求.同步`(异步,经 `豫言_浏览器_网页能力异步`);败则以(阴,错误文)返,本适配转为豫言事故,不使 JavaScript 之异常越 Wasm 之界。 **宿主之行**:`宿主/浏览器/宿主.mjs` 之 `创建网页能力`。宿主以所注入之“网络”(默认 fetch)发请求,恒用 `credentials:same-origin` 与 `mode:same-origin`,读流逐块累计字节而逾限则取消,正文依严格 UTF-8 解之;果作为类曰“请求”之事而投(订阅号即请求号),取消则并去列中未取之果;并发之限三十二(含果未取之请求)。阻塞之变体不生事。 **运行之要**:候事之函数挂豫言之栈,浏览器须支持 JSPI;八新包与网页事件包共一统一事列。 **验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用“前端接口探针”、宿主单元测试与 JSDOM 加真实 Wasm 之一致性测试,说明见其中之 `说明.文言.md`)。