# 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