网易 AI 全栈开发一面(游戏宣发官网方向)
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 简历项目相关。
- 浏览器各种不同的缓存方案有什么区别?
- WebSocket 原理,如何实现双向通信?
- 浏览器输入 URL 到渲染的流程?
- 请求、渲染分别能做什么项目优化操作?
- 前端核心性能指标有哪些?
- Vue3 响应式原理?
- Proxy 原理?
- 浏览器三次挥手的弊端?
《参考解析》
- 浏览器缓存方案的区别:分强缓存和协商缓存。强缓存(
Cache-Control的 max-age、immutable,以及Expires)命中时根本不发请求;协商缓存(ETag与If-None-Match、Last-Modified与If-Modified-Since)会带上校验字段去问服务端,没变就返回 304。此外还有 memory cache、disk cache、Service Worker 缓存和 CDN 边缘缓存这些层级;实践上静态资源用内容哈希文件名加长 max-age,HTML 用协商缓存保证能及时拿到新版本。 - WebSocket 怎么实现双向通信:先用一次 HTTP 请求带
Upgrade: websocket完成握手,服务端返回 101 后协议切换到建立在 TCP 之上的帧协议,之后双方可以随时互相推送,不再有请求与响应的语义绑定。相比轮询省掉了大量无效请求和头部开销,代价是要自己处理心跳保活、断线重连和连接数管理;和 SSE 的区别是 SSE 只能服务端单向推、仍基于普通 HTTP。 - 输入 URL 到渲染:DNS 解析、TCP 与 TLS 建连、发 HTTP 请求、服务端响应,然后浏览器解析 HTML 构建 DOM(遇到 CSS 阻塞渲染、同步 JS 阻塞解析),生成 CSSOM 并合成渲染树,接着布局、绘制、合成上屏。能优化的点分散在各段:DNS 预解析与预连接、CDN、压缩与缓存、关键 CSS 内联、JS 用 defer 或 async、减少重排重绘、图片懒加载并给合适尺寸与格式。
- 前端核心性能指标:核心是 Core Web Vitals——LCP 看最大内容绘制对应加载体验,INP 看交互响应性,CLS 看累计布局偏移即视觉稳定性,再配合 TTFB、FCP、TBT、长任务与首屏时间。优化要落到具体手段:LCP 靠资源优先级、图片优化与服务端渲染;INP 靠拆长任务、减少主线程阻塞;CLS 靠给图片和广告位预留尺寸。
- Vue3 响应式与 Proxy:Vue3 用
Proxy包裹对象做拦截,读取时track收集依赖、写入时trigger派发更新,配合Reflect保证 receiver 语义正确。相比 Vue2 的Object.defineProperty,Proxy 能直接监听新增与删除属性、数组下标和 length 变化,不需要递归遍历整个对象做转换,初始化更快也更容易做懒代理;代价是不支持 IE,基本类型仍需ref包一层。 - 三次挥手的问题:TCP 挥手是四次而不是三次——因为 TCP 是全双工,一方发 FIN 只表示自己不再发数据,另一个方向仍可继续传,所以 FIN 和 ACK 常常不能合并;如果硬压成三次,等于把被动方”我还有数据要发”的状态省掉,可能丢掉未传完的数据。回答这类题时主动纠正成”握手三次、挥手四次”,比顺着题面答更稳。