跳到正文
豫言包管理
← 全部包

豫言操作系统网页事件浏览器适配 0.2.0

豫言 · 库

以浏览器统一事件队列实现豫言操作系统网页事件接口。

浏览器网页事件适配

事件。豫 实现[网页事件接口](../../../豫言操作系统接口/网页事件/规范.汉语.md),把浏览器宿主 宿主.mjs 里的统一事件队列与界面订阅器收束为六个中文函数。应用只见 JSON 文字与整数订阅号,不见原生 DOM 事件对象或句柄。实现接口。豫 固定公共包身份与版本,接口检查器须在构建前核对六项签名。

宿主原语(均在 宿主/浏览器/宿主.mjs,失败以(阴,错误文)返回,再由本适配转成豫言事故,不让 JS 异常越过 Wasm):豫言_浏览器_等待网页事件、豫言_浏览器_订阅界面事件、豫言_浏览器_取消订阅界面事件、豫言_浏览器_事件丢弃数、豫言_浏览器_事件类型丢弃数、豫言_浏览器_设置事件队列上限。

0.2.0:订阅策略新增 选择器(宿主在原生回调里用 closest 做委托匹配,无匹配则既不投递也不执行阻止默认等动作)、带属性、带矩形,适配层无需改动——策略本来就是 JSON 文字,由宿主 创建界面订阅器 校验;只有接口版本与包版本随接口升到 0.2.0。

为什么宿主 JS 要改:键规则、阻止默认与停止传播必须在原生事件回调里同步完成,豫言只能事后处理;统一事件队列(按类型取事件、每类型背压与丢弃计数、合并)与事件委托也必须由宿主在事件到达时完成。这些逻辑写成三个可独立测试的工厂函数(创建事件队列、创建界面订阅器、创建页面控制),创建浏览器宿主 只负责把它们接到豫言原语上;宿主.mjs 是构建器固定复制的文件之一,新增逻辑不需要新增外壳文件。

队列约束:宿主 类型(低层宿主库的原始事件)满时拒新事件并报错,其余类型满时丢弃该类型最旧事件;创建浏览器宿主({队列上限:{界面:2048}}) 可在启动时传入初始上限;宿主对象另有 状态()(积压、丢弃、句柄数、订阅数),供测试与诊断,业务不得依赖。

运行要求:等待类函数挂起豫言栈,浏览器须支持 JSPI(WebAssembly.Suspending)。验收:一致性验证/ 里有探针应用、宿主单元测试(JSDOM,不含 Wasm)和 JSDOM+真实 Wasm 的一致性测试,说明见其中的 说明.汉语.md;键规则时序、dialog Esc、输入法组字、焦点细节等 JSDOM 不能覆盖的行为须在真实浏览器验收,清单见该说明。

依赖

查看包配置

上传历史

当前上传修订:1 ·

  1. 上传修订 1
    下载 ZIP

包层级

父包:豫言操作系统适配

没有子包。