媒体与设备平台 API

共 82 题
#

1. SharedArrayBuffer + COOP/COEP 跨域隔离的启用条件

A 配置 COOP: same-origin 与 COEP: require-corp 后可启用跨域隔离,进而使用 SharedArrayBuffer ✓ 正确答案
B 任何页面都能直接创建 SharedArrayBuffer
C SharedArrayBuffer 只能在主线程中创建
D COEP 响应头只影响同源资源的加载
#

2. WebSocket、WebTransport、WebRTC 的协议层级与适用场景

A WebTransport 基于 HTTP/3 与 QUIC,可提供多路流与数据报 ✓ 正确答案
B WebRTC 媒体传输依赖 TCP 保证有序可靠
C WebSocket 基于 UDP 实现低延迟传输
D WebTransport 与 WebSocket 的协议栈完全相同
#

3. Cross-Origin Isolation(COOP/COEP/CORP)

A COEP 决定页面能否被跨源窗口打开
B 设置 COOP 后即可启用 SharedArrayBuffer,无需其他配置
C CORP 头由顶层文档设置,用于限制自身加载的资源
D COOP、COEP、CORP 分别管理窗口引用、子资源嵌入与资源被嵌入权限,配合实现跨域隔离 ✓ 正确答案
#

4. Service Worker 的 install/activate/fetch 事件驱动的离线优先策略

A install 事件用于清理旧版本缓存
B fetch 事件负责拦截请求并按缓存优先策略返回响应 ✓ 正确答案
C activate 事件在每次请求时触发
D 缓存写入不需要 waitUntil 管理生命周期
#

5. WebTransport 的 stream 与 datagram 在低延迟游戏与实时音视频的取舍

A datagram 延迟低但可能丢包,适合高频可容忍丢失的状态数据 ✓ 正确答案
B stream 适合高频位置状态同步,datagram 适合关键控制命令
C datagram 传输保证消息有序且不丢失
D WebTransport 只提供可靠传输通道
#

6. Atomics.waitAsync/Atomics.notify 在 Worker 间锁与唤醒的工程价值

A Atomics.waitAsync 以 Promise 形式异步等待,不会阻塞调用线程 ✓ 正确答案
B Atomics.wait 可以在主线程安全使用
C Atomics.notify 用于写入共享内存值
D 共享内存同步不需要处理假唤醒
#

7. WebTransport 基于 HTTP/3 + QUIC 的双向流、Datagram 与连接迁移

A WebTransport 基于 TCP,多流之间会相互阻塞
B QUIC 连接迁移依赖 IP 与端口四元组保持连接
C WebTransport 只支持不可靠的数据报传输
D WebTransport 基于 HTTP/3 与 QUIC,连接迁移靠连接 ID 实现网络切换不断连 ✓ 正确答案
#

8. WebRTC 信令、SDP、ICE/STUN/TURN 的建立流程

A STUN 服务器用于中继所有媒体流量
B 信令协议是 WebRTC 规范强制规定的标准协议
C TURN 只在同一局域网内使用
D SDP 用于协商媒体能力,ICE/STUN/TURN 用于解决寻路与 NAT 穿透 ✓ 正确答案
#

9. Page Visibility、Lifecycle API 与后台节流对定时器的影响

A 页面隐藏后 requestAnimationFrame 仍按 60fps 执行
B hidden 状态下浏览器会对定时器降频,requestAnimationFrame 暂停 ✓ 正确答案
C visibilitychange 事件在页面冻结时不会触发
D 后台页面的 setTimeout 与前台精度完全一致
#

10. Navigation API(navigation.navigate、navigation.intercept、navigation.currentEntry,已纳入 Baseline 且主流浏览器可用)替代 History API 的能力差异

A Navigation API 的 intercept 只能同步拦截,不能异步接管
B Navigation API 依赖 popstate 事件完成路由切换
C Navigation API 不能区分同文档与跨文档导航
D navigation.currentEntry 表示当前历史条目,可获取结构化 state ✓ 正确答案
#

11. AVIF 与 JPEG XL 的浏览器支持、解码性能与生产管线集成

A JPEG XL 已被所有主流浏览器默认支持
B AVIF 支持广泛但压缩率低于 JPEG
C AVIF 已获主流浏览器支持,生产环境常用 <picture> 多源降级搭配 WebP/JPEG ✓ 正确答案
D 图片格式选择与解码性能无关
#

12. pageshow/pagehide 与 visibilitychange 在 bfcache 恢复场景的事件触发差异

A 从 bfcache 恢复时会重新执行 DOMContentLoaded
B visibilitychange 事件携带 persisted 标志
C 进入 bfcache 时会触发 unload 事件
D pageshow 的 persisted 属性可用于识别页面是否从 bfcache 恢复 ✓ 正确答案
#

13. Navigation API 的拦截能力(navigation.intercept)与 History API 的能力对比

A navigation.intercept 可异步接管导航,并支持取消与自动中止旧 handler ✓ 正确答案
B popstate 可以在导航发生前拦截并取消
C History API 与 Navigation API 的拦截能力相同
D intercept 只能同步执行,不能返回 Promise
#

14. beforeunload 与 pagehide 在移动端的可靠性差异

A beforeunload 在移动端一定会弹出确认框
B pagehide 事件在进入 bfcache 时不会触发
C unload 是现代浏览器最可靠的离开事件
D pagehide 触发更稳定,配合 sendBeacon/keepalive 可提高离开时上报的可靠性 ✓ 正确答案
#

15. Document Lifecycle(DOMContentLoaded、load)与 Frame Tree 嵌套子文档的传播

A 父文档的 load 事件一定早于子 iframe 的 load 触发
B DOMContentLoaded 会等待所有图片加载完成
C DOM 事件可以在 iframe 之间冒泡传播
D 父文档的 load 事件会等待子 iframe 加载完成 ✓ 正确答案
#

16. View Transitions 的命名 view-transition 与双向/单向动画的精细化控制

A 新旧状态中同名的 view-transition-name 会被浏览器配对,产生共享元素动画 ✓ 正确答案
B view-transition-name 用于设置动画时长
C View Transitions 只能做整页淡入淡出
D ::view-transition-old 代表新状态的快照
#

17. Page Lifecycle API(onfreeze/onresume/visibilitychange)

A freeze 事件在页面变为 hidden 之前触发
B 页面冻结期间定时器仍然按原频率执行
C freeze 在页面隐藏之后、冻结之前触发,冻结期间定时器与网络不可用 ✓ 正确答案
D resume 事件触发时页面一定可见
#

18. View Transitions API(同文档 document.startViewTransition() 与跨文档 @view-transition)的动画编排

A 跨文档 View Transitions 不需要任何声明即可启用
B 同文档过渡用 document.startViewTransition 触发,跨文档过渡需源与目标页面声明 @view-transition ✓ 正确答案
C View Transitions 只能用于同文档导航
D pageswap 事件用于触发同文档过渡
#

19. Back/Forward Cache(bfcache)对状态恢复与监听器的影响

A 从 bfcache 恢复时会重新执行所有脚本
B 页面冻结期间 WebSocket 连接与定时器保持可用
C bfcache 保留 DOM 与 JS 状态,但冻结期间定时器与网络不可用,恢复需靠 pageshow 重建 ✓ 正确答案
D 注册 unload 监听器有助于提高 bfcache 命中率
#

20. Prerender 文档对 analytics 页面浏览的过滤策略(避免重复埋点)

A 预渲染页面不会执行任何脚本
B 预渲染阶段的页面浏览埋点应照常上报
C 用 document.prerendering 判断预渲染状态,仅在页面激活后上报,可避免重复 PV ✓ 正确答案
D activationStart 与埋点过滤无关
#

21. fetchLater() API 在页面销毁阶段可靠上报的应用,abort 与 activateAfter 的工程边界

A fetchLater 会等待服务器返回响应后才结束
B fetchLater 与 sendBeacon 的能力完全相同
C fetchLater 在页面销毁后仍由浏览器代发请求,activateAfter 控制发送时机 ✓ 正确答案
D fetchLater 不支持 abort 取消
#

22. WebCodecs VideoDecoder/VideoFrame 在低延迟视频编辑的工程价值

A VideoDecoder 直接解码出 VideoFrame,应用可控制时序并低延迟处理 ✓ 正确答案
B MSE 比 WebCodecs 更适合逐帧编辑处理
C VideoFrame 只能用于播放,不能绘制到 Canvas
D WebCodecs 解码时机完全由浏览器掌控
#

23. File API、Blob、File、FileReader、URL.createObjectURL 的协作

A File 与 Blob 没有任何区别
B URL.createObjectURL 生成的 URL 无需释放
C FileReader 只能读取文本内容
D File 继承 Blob 并附加文件元数据,预览宜用 createObjectURL 并用 revokeObjectURL 释放 ✓ 正确答案
#

24. File System Access API 与 Origin Private File System(OPFS)

A File System Access API 读写用户文件需要用户授权,OPFS 是源私有存储无需授权 ✓ 正确答案
B OPFS 的文件对用户可见
C OPFS 只能存储小字符串
D createSyncAccessHandle 只能用于主线程
#

25. CompressionStream 与 DecompressionStream 在浏览器端 gzip/deflate 流式处理的实际收益

A CompressionStream 只能处理 base64 数据
B 该 API 用于替代 HTTP Content-Encoding 自动压缩
C CompressionStream 基于 TransformStream 流式压缩,支持 gzip/deflate,内存友好且减少传输体积 ✓ 正确答案
D 压缩必须在主线程一次性完成
#

26. Media Session API(navigator.mediaSession)如何向系统媒体通知、锁屏与耳机按键暴露播放元数据与 play/pause/seek/nexttrack 动作,多页面同时播放时由谁决定动作归属?

A 媒体会话的控制动作只能由页面内按钮触发
B 多页面同时播放时,由最近活跃的媒体会话接收系统控制动作 ✓ 正确答案
C mediaSession 只能在主线程外使用
D playbackState 由浏览器自动维护,无需同步
#

27. WebCodecs 的 VideoEncoder/VideoDecoder 在低延迟视频编辑中的配置(hardwareAcceleration、latencyMode)与性能调优

A latencyMode 只有 quality 一种取值
B hardwareAcceleration 决定硬件或软件编解码路径,latencyMode 权衡画质与延迟 ✓ 正确答案
C VideoEncoder 不需要配置码率
D hardwareAcceleration 强制使用硬件后无需回退处理
#

28. EyeDropper API 在主题色提取的浏览器兼容与权限策略

A EyeDropper 可以在后台无手势调用
B 所有浏览器都支持 EyeDropper API
C EyeDropper.open() 返回拾取颜色的 sRGBHex,且需要用户手势与安全上下文 ✓ 正确答案
D EyeDropper 需要用户显式授权权限
#

29. Popover API 在多语言/多模态的协作边界

A Popover 弹层受父元素 overflow 裁剪
B Popover 不支持 RTL 语言
C 按 Esc 关闭弹层后焦点会自动移入弹层
D Popover API 渲染在顶层图层并支持 light-dismiss,但焦点管理需应用层处理 ✓ 正确答案
#

30. <picture> 与 srcset 在响应式图片中的取舍

A srcset 只能按像素密度选图
B <picture> 与 srcset 不能组合使用
C <picture> 用于按媒体条件或格式切换源,<img> 内可再嵌套 srcset ✓ 正确答案
D 使用 <picture> 后无需提供 <img> 兜底
#

31. WebGPU 的 Compute Shader 在浏览器端物理模拟与图像处理的工程价值

A Compute Shader 只能用于渲染三角形
B WebGPU Compute Shader 以工作组并行计算,可与渲染共享纹理减少拷贝 ✓ 正确答案
C 物理模拟必须回传 CPU 处理
D WebGPU 在所有浏览器中无需回退处理
#

32. requestVideoFrameCallback 在视频同步与抽帧分析的能力

A rVFC 与 requestAnimationFrame 触发时机完全相同
B rVFC 回调携带帧元数据,可与视频帧一一对应实现同步与抽帧分析 ✓ 正确答案
C rVFC 无法感知页面是否可见
D rVFC 回调中应执行大量同步计算
#

33. Worker、SharedWorker、Service Worker 的线程模型与作用域

A Service Worker 通过 postMessage 与页面一对一通信
B SharedWorker 生命周期与页面完全相同
C SharedWorker 可被同源多个标签页共享,专用 Worker 与创建它的页面一对一 ✓ 正确答案
D 三种 Worker 的作用域完全相同
#

34. VideoFrame 与 createImageBitmap 在视频帧截图的性能对比

A createImageBitmap 比 VideoFrame 更适合高频抽帧
B VideoFrame 不需要释放资源
C VideoFrame 零拷贝引用视频帧,适合高频抽帧,但用后必须 close() 释放 ✓ 正确答案
D createImageBitmap 只能用于视频截图
#

35. WebXR 在沉浸式页面中的渲染管线

A WebXR 每帧需按左右眼视图渲染,并绘制到会话 framebuffer 由浏览器合成 ✓ 正确答案
B WebXR 使用页面自己的 requestAnimationFrame 驱动帧循环
C WebXR 渲染与普通 WebGL 完全一致
D WebXR 只需要渲染一个视图
#

36. ImageDecoder API 在逐帧 GIF/WebP 动画解码中的工程应用与 createImageBitmap 的性能对比

A ImageDecoder 只能解码静态图片
B ImageDecoder 解码的帧无需释放
C createImageBitmap 支持任意帧的随机访问
D ImageDecoder 支持按帧索引解码与随机访问,适合动画逐帧处理 ✓ 正确答案
#

37. 视频 <video> 的 playsinline、muted、autoplay 在 iOS Safari 的策略

A iOS 上有声视频也可以无手势自动播放
B 设置 muted 后动态 play() 在 iOS 上永远被拦截
C playsinline 会让视频默认全屏播放
D 静音 + playsinline 才可无手势自动播放,有声播放必须用户手势触发 ✓ 正确答案
#

38. WebCodecs API 在低延迟视频解码与视频编辑场景相较于 MSE 的取舍

A MSE 比 WebCodecs 更适合逐帧编辑
B WebCodecs 与 MSE 的控制粒度完全相同
C WebCodecs 应用可直接控制解码队列与帧生命周期,延迟低但需自建容器解析 ✓ 正确答案
D MSE 不需要 SourceBuffer
#

39. createImageBitmap() 在 Worker 中异步解码大图与内存管理的工程实践

A createImageBitmap 只能在主线程使用
B 在 Worker 中解码可避免阻塞主线程,resize 控制内存,位图用完需 close() ✓ 正确答案
C ImageBitmap 无需释放资源
D 解码并发越高越好,无需限流
#

40. 3D 模型格式(glTF、USDZ)在浏览器端加载与渲染的优化路径

A USDZ 是浏览器内交互渲染的标准格式
B USDZ 可以在任意浏览器中深度交互
C glTF 不支持动画
D glTF 是 Web 3D 标准格式,优化常用 .glb、Draco 压缩与 KTX2 纹理 ✓ 正确答案
#

41. WebVTT 字幕轨在视频播放器的同步与样式自定义工程实现

A WebVTT cue 由开发者手动定时切换
B WebVTT 不支持中文
C ::cue 支持所有 CSS 属性
D <track> 的 cue 由浏览器按时间自动同步激活,复杂样式可监听 cuechange 自行渲染 ✓ 正确答案
#

42. <track kind="chapters"> 在视频章节导航与 SEO 的工程价值

A chapters 轨道只能用于字幕显示
B 章节标题对 SEO 没有影响
C chapters 轨道用 cue 定义章节,可生成导航菜单并提升视频 SEO ✓ 正确答案
D 章节 cue 只能手动切换
#

43. 图像懒加载与解码优先级提示(fetchpriority="high")在 LCP 优化的协同

A LCP 图片也应使用 loading="lazy"
B fetchpriority 会强制浏览器按指定顺序加载
C LCP 图宜不懒加载并加 fetchpriority="high" 与 preload,视口外图片 lazy 降优先级 ✓ 正确答案
D lazy 图片无需设置宽高
#

44. WebXR 在浏览器端 VR/AR 沉浸式体验的现状、API 兼容与降级方案

A 使用 WebXR 前必须特性检测,不支持时按 immersive→inline→2D 降级 ✓ 正确答案
B iOS Safari 完整支持 WebXR
C WebXR 不需要用户手势
D 所有浏览器都支持 immersive-ar
#

45. 视频预加载 preload="metadata" 与 preload="auto" 在流量与首屏的取舍

A preload="metadata" 会下载整段视频
B metadata 只加载元数据省流量,auto 预加载媒体数据提升体验但费流量 ✓ 正确答案
C preload 属性不影响网络流量
D preload="none" 会立即下载视频
#

46. WebGPU 适配器与设备请求在多 GPU 环境下的回退策略与能力检测

A powerPreference 保证选择独显
B 适配器能力检测没有必要
C WebGPU 在所有浏览器都可用
D 多 GPU 下适配器选择具有不确定性,需能力检测并支持设备丢失重建与降级 ✓ 正确答案
#

47. Broadcast Channel 与 SharedWorker 跨标签通信的能力差异

A BroadcastChannel 可以共享跨标签状态
B BroadcastChannel 广播直达且 API 简单,SharedWorker 可集中共享状态与路由 ✓ 正确答案
C SharedWorker 通信没有额外延迟
D 两者功能完全相同
#

48. WebRTC 的 insertable streams(Encoded Transform)在端到端加密与特效处理的应用

A Insertable Streams 只能用于接收方向
B Encoded Transform 可在编解码与传输之间插入自定义处理,实现端到端加密与特效 ✓ 正确答案
C Encoded Transform 运行在主线程
D 端到端加密不需要密钥分发
#

49. SharedWorker 在多标签页共享 WebSocket 连接时的连接复用边界

A SharedWorker 的 WebSocket 连接在每个页面各自建立
B SharedWorker 可以跨源共享连接
C 最后一个端口关闭后 worker 仍保持运行
D SharedWorker 复用单条连接,需管理端口生命周期、消息路由与断线重连 ✓ 正确答案
#

50. Worker 模块类型(Classic vs Module)

A classic Worker 支持 import/export
B 两种 Worker 的加载语义完全相同
C 模块 Worker 默认非严格模式
D 模块 Worker 支持 import/export 与顶层 await,跨域加载需 CORS ✓ 正确答案
#

51. navigator.hardwareConcurrency 与 crossOriginIsolated 在高吞吐 Worker 池策略的工程价值

A crossOriginIsolated 与 Worker 池无关
B hardwareConcurrency 是精确且不受限制的
C Worker 数量越多性能一定越好
D hardwareConcurrency 提供核数用于决定池大小,crossOriginIsolated 决定共享内存任务队列是否可用 ✓ 正确答案
#

52. WebCodecs 在 Worker 中的硬件解码加速与主线程减负

A Worker 中解码配合帧转移与 OffscreenCanvas 可减负主线程,硬件加速需检测与回退 ✓ 正确答案
B VideoDecoder 只能在主线程创建
C 硬件解码无需任何回退处理
D VideoFrame 转移是拷贝操作
#

53. scheduler.postTask 的优先级(user-blocking/user-visible/background)

A background 任务与其他优先级执行时机相同
B postTask 与 setTimeout 功能完全相同
C postTask 支持优先级、取消与动态调整,user-blocking 用于关键交互任务 ✓ 正确答案
D user-visible 是最高优先级
#

54. PerformanceNavigationTiming 的 activationStart 与 prerender 耗时归因,预渲染对导航时间线的影响

A activationStart 表示导航开始时间
B 预渲染会提前完成加载导致时间线偏移,应以 activationStart 为基准归因 ✓ 正确答案
C 预渲染页面没有性能时间线
D activationStart 在普通导航中为负数
#

55. navigation.entries() 返回的会话历史条目在跨标签页跳转的工程实践

A 新标签页会继承源页面的历史条目
B entries() 与 history 数组内容完全相同
C key 是全局唯一的
D entries() 返回当前标签页的会话历史,key/id 可用于状态恢复,跨标签页历史独立 ✓ 正确答案
#

56. unload 事件被现代浏览器弃用后如何保证页面离开前的清理逻辑

A unload 在所有移动场景都会触发
B 注册 unload 监听器可提高 bfcache 命中率
C unload 不可靠且阻碍 bfcache,应改用 pagehide 配合 sendBeacon 完成清理与上报 ✓ 正确答案
D 页面进入 bfcache 时 pagehide 不会触发
#

57. document.visibilityState 与 document.hidden 在前后台切换的工程协作

A document.hidden 与 visibilityState 是不同来源的属性
B visibilityState 只有 visible 与 hidden 两种值
C visibilitychange 能区分 bfcache 恢复
D hidden 是 visibilityState 的布尔简写,配合 visibilitychange 可做前后台任务管理 ✓ 正确答案
#

58. Navigation API 的拦截能力(intercept)如何统一 SPA 与 MPA 路由模型

A navigate 事件只能拦截同文档导航
B intercept 按目的地决定拦截或放行,可统一 SPA 前端渲染与 MPA 整页导航 ✓ 正确答案
C Navigation API 不支持回退到 History API
D 拦截后导航仍会刷新页面
#

59. requestAnimationFrame 与 requestIdleCallback 在页面生命周期不同阶段的取舍

A rAF 在页面隐藏后仍持续触发
B rAF 适合渲染与动画,rIC 空闲执行低优先级任务,后台与冻结阶段两者都会受节流 ✓ 正确答案
C rIC 适合关键交互任务
D 冻结期间 rAF 仍按帧执行
#

60. pageswap 事件(Chromium 提案)在跨文档导航前预加载资源的应用

A pageswap 在同文档 SPA 切换时触发
B pageswap 回调可以执行长时间同步任务
C pageswap 在跨文档导航提交前触发,可用于预取目标页资源 ✓ 正确答案
D pageswap 在所有浏览器中均可用
#

61. 页面持久化(Page Lifecycle API 的 freeze/resume)对内存与电池的影响

A 冻结页面仍然执行定时器
B resume 时页面自动恢复所有状态
C 冻结不会影响内存占用
D freeze 暂停任务降低 CPU 与电池消耗,恢复时需重建被暂停的资源 ✓ 正确答案
#

62. scrollend 事件在惯性滚动结束时的工程应用,如埋点与懒加载触发

A scrollend 与 scroll 一样高频触发
B scrollend 不支持元素级滚动
C scrollend 在滚动完全结束后触发一次,适合曝光埋点与懒加载触发 ✓ 正确答案
D scrollend 在所有浏览器都支持
#

63. 多 Frame 嵌套(iframe)的页面生命周期事件传播与同源策略边界

A 子 iframe 的生命周期事件会自动冒泡到父页面
B 各 Frame 独立触发生命周期事件,跨源 iframe 需用 postMessage 同步状态 ✓ 正确答案
C 跨源 iframe 可以直接读取父页面 DOM
D iframe 不参与 bfcache
#

64. Async Clipboard API(navigator.clipboard.writeText/readText 与图片读写)的权限边界

A clipboard.write 可以在后台静默执行
B 剪贴板图片读写没有任何限制
C 剪贴板写需要用户手势与安全上下文,读需要 clipboard-read 权限 ✓ 正确答案
D clipboard API 不需要处理权限拒绝
#

65. FileSystemFileHandle 的 move()/remove() 在文件管理类 Web App 的协作

A move() 只能移动不能重命名
B 文件操作自动加锁防止并发冲突
C move() 可移动或重命名,remove() 删除,工程上需处理权限、并发与撤销 ✓ 正确答案
D 删除操作总是可撤销的
#

66. Font Access API(queryLocalFonts)

A queryLocalFonts 无需授权即可调用
B queryLocalFonts 枚举本地字体需要用户授权,适合字体预览与设计工具 ✓ 正确答案
C Font Access API 在所有浏览器都可用
D 字体列表不包含任何隐私信息
#

67. getDisplayMedia() 屏幕捕获的约束与权限边界,如何同时捕获标签页音频(audio: true)、限制帧率分辨率,以及 region capture 与 restrictOwnAudio 的现代能力?

A getDisplayMedia 可以在后台静默捕获屏幕
B 区域捕获不需要 CropTarget
C audio: true 总能捕获系统音频
D 屏幕捕获可限制帧率分辨率,region capture 裁剪区域,restrictOwnAudio 防止捕获自身音频 ✓ 正确答案
#

68. AudioWorklet 相较 ScriptProcessorNode 在音频处理线程与低延迟(渲染量子大小)上的优势,以及跨线程传输音频数据的注意事项?

A ScriptProcessorNode 的延迟比 AudioWorklet 更低
B AudioWorklet 在专用音频线程按 128 样本量子执行,延迟低且不阻塞主线程 ✓ 正确答案
C 音频回调中可以执行任意耗时操作
D AudioWorklet 只能运行在主线程
#

69. Payment Request API 的完整流程(PaymentRequest 构造与 supportedMethods 支付方法清单、canMakePayment 能力探测、show() 拉起原生支付界面并回传 PaymentResponse)相比跳转收银台与扫码支付在转化率、安全与合规的取舍,以及 Chrome/Edge 与 Safari(Apple Pay)支持差异、Firefox 不支持时的降级方案?

A Firefox 完整支持 Payment Request API
B canMakePayment 用于确认收款
C Payment Request 在页面内拉起原生支付界面,流程短转化高,Firefox 不支持时需降级到收银台跳转 ✓ 正确答案
D 支付流程不需要 complete()
#

70. Navigation API 的 transitionWhile 在跨文档视图过渡时的视觉衔接

A transitionWhile 让拦截的导航驱动视图过渡并延迟提交,实现平滑衔接 ✓ 正确答案
B transitionWhile 用于阻止导航
C transitionWhile 与 View Transitions 无关
D 过渡一旦开始不能被新导航中断
#

71. prerender 与 prefetch 在 CDN 边缘缓存与缓存命中率优化的工程取舍

A prefetch 会完整执行页面脚本
B prerender 完整渲染成本高,prefetch 只下载资源成本低,两者都可预热 CDN 缓存 ✓ 正确答案
C 预取数量越多越好
D prerender 不会消耗内存
#

72. navigation.onnavigate 与 window.onpopstate 在路由拦截能力的对比

A onpopstate 可以拦截并取消导航
B 两者的能力完全相同
C pushState 调用时必定触发 popstate
D onnavigate 可拦截接管导航,onpopstate 只是历史切换的事后通知 ✓ 正确答案
#

73. 页面离开时通过 Beacon API 上报数据相较 navigator.sendBeacon 的兼容性边界

A sendBeacon 请求体没有大小限制
B sendBeacon 支持任意 HTTP 方法
C sendBeacon 会阻塞页面卸载
D sendBeacon 在页面离开时由浏览器接管尽力送达,但体量受限,需回退方案 ✓ 正确答案
#

74. 页面恢复时如何识别 bfcache 恢复并选择性地恢复 WebSocket 连接

A bfcache 恢复时 WebSocket 连接仍然保持
B 用 pageshow.persisted 识别 bfcache 恢复,冻结期连接已断开,需选择性重连并补偿数据 ✓ 正确答案
C 页面恢复后无需同步断连期间的数据
D visibilitychange 能替代 pageshow 识别 bfcache 恢复
#

75. navigation.currentEntry 在 SPA 路由状态恢复时的工程应用

A currentEntry 的 key 每次导航都会变化
B currententrychange 无法区分导航方向
C SPA 状态恢复只能依赖 URL 参数
D currentEntry 提供稳定 key 与 state,可用于滚动位置与 UI 状态恢复 ✓ 正确答案
#

76. visibilitychange 事件在前后台切换的埋点暂停与定时器清理策略

A hidden 时暂停埋点与定时器,visible 时恢复并补发数据 ✓ 正确答案
B 页面隐藏后应继续高频轮询
C 后台埋点数据无需暂存
D visibilitychange 与定时器清理无关
#

77. Storage Buckets API(navigator.storageBuckets)的多桶隔离策略

A Storage Buckets 只有一个共享配额
B 多桶可隔离配额与持久化策略,支持分级存储与整体清理 ✓ 正确答案
C 桶内不能使用 IndexedDB
D 桶的持久化无需用户授权
#

78. navigator.storage.estimate() 在存储配额预警中的应用

A estimate 返回的是精确不变的配额
B 配额耗尽时写入会自动成功
C estimate 提供 usage/quota,可按使用率分级预警并触发清理 ✓ 正确答案
D usageDetails 无法区分存储来源
#

79. URL.createObjectURL 的内存泄漏治理(revokeObjectURL)与框架层封装策略

A blob URL 会被 GC 自动回收,无需 revoke
B 同一 Blob 创建多个 URL 无任何影响
C revoke 后 URL 仍可继续使用
D createObjectURL 持有 Blob 引用,需用 revokeObjectURL 释放,框架层应绑定生命周期自动回收 ✓ 正确答案
#

80. File System Access API 与 Web Worker OPFS 在跨标签大文件编辑冲突与锁的工程价值

A 文件句柄天然支持并发互斥
B OPFS 同步访问句柄提供互斥语义,可配合版本号与广播治理跨标签编辑冲突 ✓ 正确答案
C 多标签编辑同一文件不会冲突
D 同步句柄可以同时被多个标签页获取
#

81. showSaveFilePicker 与 WritableStreamDefaultWriter 在浏览器端导出大文件的工程价值

A 导出大文件必须一次性加载到内存
B showSaveFilePicker 不需要用户交互
C write() 是同步阻塞操作
D createWritable+Writer 可流式分块写入,内存可控并支持进度与取消 ✓ 正确答案
#

82. Multi-Screen Window Placement API(getScreenDetails())在多屏演示、跨屏窗口摆放与 window-management 权限策略下的工程价值与兼容边界?

A getScreenDetails 获取多屏信息并配合窗口摆放,受 window-management 权限与桌面浏览器兼容限制 ✓ 正确答案
B getScreenDetails 可以在移动端使用
C 多屏 API 不需要任何权限
D Safari 完整支持 Multi-Screen Window Placement API