浏览器进程模型、站点隔离与导航生命周期

共 20 题
#

1. 浏览器多进程架构(Browser、Renderer、GPU、Network、Plugin)

A 网络请求由渲染进程直接处理
B 渲染进程崩溃会导致整个浏览器退出
C 所有页面共用同一个渲染进程
D Browser 进程管 UI 与导航,Renderer 进程执行页面渲染与脚本,GPU/Network 进程分别隔离合成与网络栈 ✓ 正确答案
#

2. Prerender 进程的渲染器进程与传统 prefetch 的差异

A prefetch 比 prerender 更消耗 CPU
B 预渲染与普通导航完全相同
C prerender 在后台渲染器完整执行页面、激活即用,但会重复执行副作用逻辑,需按命中率取舍 ✓ 正确答案
D prefetch 会完整执行页面脚本
#

3. 浏览器站点隔离(Site Isolation)的安全模型与跨域 iframe 隔离的工程取舍

A 跨进程 iframe 仍可同步访问父页面 DOM
B Site Isolation 让所有 iframe 与父页面同进程
C Site Isolation 按站点分配渲染进程,跨域 iframe 走 OOPIF 隔离,代价是内存开销与调试复杂度 ✓ 正确答案
D 站点隔离只影响网络进程
#

4. 浏览器主进程与渲染进程的 IPC 通道(Mojo)在高并发场景的瓶颈

A 渲染进程之间直接通信无需经过主进程
B Mojo 通道可以无限并行处理
C IPC 消息没有大小限制
D Mojo 单通道串行、大消息拷贝与共享存储接口竞争是高并发瓶颈,可通过批量、通道分离与共享内存缓解 ✓ 正确答案
#

5. 浏览器标签页冻结(Tab Freeze)与后台节流对前端性能与计时的工程影响

A 后台标签的定时器与前台精度一致
B 冻结与节流会暂停或拉长后台 JS 执行,计时与埋点需用时间戳差值并在可见性恢复时校准 ✓ 正确答案
C 轮询逻辑在后台永远准时触发
D requestAnimationFrame 在后台继续运行
#

6. 内存压力(memory pressure)下浏览器主动回收标签页的策略与监听

A 浏览器按后台状态与恢复成本分层回收(冻结、丢弃、清缓存),前端应持久化状态并在恢复时重建 ✓ 正确答案
B 前端无法感知页面被丢弃
C 标签页被丢弃后用户状态必然丢失
D 内存压力下浏览器优先丢弃前台标签
#

7. Browser-level fetch 处理器(Navigation Preload、Speculation Rules)

A Speculation Rules 与预渲染无关
B Navigation Preload 在 SW 启动期间并行发请求,Speculation Rules 声明式预取/预渲染,二者可分层优化导航性能 ✓ 正确答案
C Navigation Preload 会增加导航延迟
D preloadResponse 只能用于缓存命中
#

8. 渲染进程崩溃(Renderer Crashed)的检测、自动恢复与状态丢失的工程取舍

A 浏览器不会自动恢复崩溃标签
B 崩溃检测需心跳或 SW 侧探活,关键状态实时持久化,恢复后按持久化状态重建 ✓ 正确答案
C window.onerror 可以捕获渲染进程崩溃
D 崩溃后页面状态必然全部保留
#

9. 进程内导航(In-Process Navigation)

A 导航是否跨进程不影响任何行为
B 所有导航都必须跨进程
C 进程内导航会重新创建渲染进程
D 同站可复用时导航在进程内提交、延迟更低,但跨站导航受站点隔离约束必须换进程 ✓ 正确答案
#

10. 浏览器网络进程(Network Process)的请求调度与连接池的工程实践

A HTTP/2 下请求无需关注优先级
B 网络进程维护每源连接池并分级调度请求,前端用 preconnect/优先级标注与合并请求配合 ✓ 正确答案
C HTTP/1.1 的 6 连接限制不影响性能
D QUIC 仍然存在 TCP 队头阻塞
#

11. Pre-rendered page(Chrome 99+)在主页面已激活时如何避免渲染浪费

A 预渲染没有任何资源开销
B 激活时预渲染文档直接接管标签页,工程上用 document.prerendering 延迟副作用并控制预渲染范围 ✓ 正确答案
C 预渲染请求与服务端正常访问无法区分
D 预渲染页面激活后浏览器会重新渲染一次
#

12. 浏览器扩展(Extensions)的 content script 与页面主世界的进程隔离边界

A content script 与页面共享 JS 全局变量
B content script 运行在独立渲染进程
C 扩展可以直接读取页面内存
D content script 与页面主世界共享 DOM 但全局隔离,通过消息与 DOM 事件桥接,属渲染进程内执行 ✓ 正确答案
#

13. Speculation Rules 中 prerender 的 hint 触发与取消的工程实践

A eagerness 只影响 prefetch
B 预渲染页面无法感知自身状态
C 预渲染触发时机由页面 JS 强制决定
D Speculation Rules 按 eagerness 分层触发预渲染,浏览器可取消未激活预渲染,页面用 document.prerendering 延迟副作用 ✓ 正确答案
#

14. Prerender 文档中的 document.prerendering 属性在脚本执行与预渲染激活时机判断的工程价值

A document.prerendering 标记预渲染阶段,用于延迟副作用与统计,激活时经 prerenderingchange 补齐初始化 ✓ 正确答案
B 预渲染期间统计可以正常上报
C activationStart 与预渲染无关
D 预渲染阶段与普通加载阶段完全相同
#

15. Frame Tree 在 iframe 嵌套与跨域 iframe 隔离(Site Isolation)

A Frame Tree 保持逻辑父子结构,跨域帧进程隔离后仅能通过 postMessage 等异步方式通信 ✓ 正确答案
B 跨域 iframe 与父页面共享进程可直接访问 DOM
C 同域 iframe 也走 OOPIF
D window.parent 跨进程可以同步取值
#

16. Navigation Activation 期间的 commit 与析构阶段对 SPA hydration 与 view transitions 的工程影响

A 激活分 commit 与析构阶段,hydration 与跨文档 view transitions 需在这些时机内完成接管与动画衔接 ✓ 正确答案
B hydration 与导航时序无关
C view transitions 只在同文档生效
D 导航激活时旧文档立即无痕消失
#

17. Origin-Agent-Cluster 在请求头声明与进程隔离的现代工程价值

A 该头会让同站 iframe 共享进程
B Origin-Agent-Cluster 请求头按源细分进程隔离,强化同站跨源隔离,但增加进程与内存开销 ✓ 正确答案
C document.domain 在该头下仍然生效
D Origin-Agent-Cluster 只能通过 JS 启用
#

18. Bfcache 恢复时 performance.getEntriesByType('navigation')[0].type === 'back_forward' 的检测方法

A BFCache 恢复不需要任何处理
B 用 navigation.type==='back_forward' 与 pageshow.persisted 检测 BFCache 恢复,并重连资源、校准计时 ✓ 正确答案
C BFCache 恢复的页面会重新执行脚本
D unload 监听不影响 BFCache
#

19. Chromium 的 OOPIF(Out-of-process iframe)

A OOPIF 把跨站 iframe 隔离到独立渲染进程,跨帧只能异步消息通信,崩溃隔离且调试需切换进程 ✓ 正确答案
B 跨进程 iframe 可以同步访问父 DOM
C OOPIF 只在移动端生效
D OOPIF 与父页面共享渲染进程
#

20. startViewTransition 跨文档模式与 Speculation Rules prerender 在 Astro/Qwik 多页应用中的视觉连续性

A 预渲染页面无法参与过渡动画
B 跨文档 view transitions 无法与预渲染配合
C view transitions 只在 SPA 中可用
D 跨文档过渡用快照动画衔接导航,配合 prerender 激活实现点击即见,MPA 框架按视图过渡名约定实现并降级 ✓ 正确答案