回答: OPTIONS 请求是 CORS 预检请求(Preflight),触发条件:
PUT
/DELETE
,或包含自定义头部(如 Authorization
)。解决方案:
服务端响应 OPTIONS 时,返回允许的 Method 和 Headers:
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
回答: WebSocket 是双向通信协议,适用于实时应用(如聊天室、股票行情):
基本用法:
const ws = new WebSocket('wss://api.example.com/socket');
// 连接建立
ws.onopen = () => {
ws.send('连接成功!');
};
// 接收消息
ws.onmessage = (e) => {
console.log('收到消息:', e.data);
};
// 关闭连接
ws.onclose = () => {
console.log('连接关闭');
};
优势:
回答: SSR(Server-Side Rendering)指在服务端生成完整 HTML 页面,核心优势:
实现流程:
框架支持:
回答:
特性 | UniApp | Taro |
---|---|---|
语法基础 | 基于 Vue.js。 | 基于 React.js(支持 Vue 3)。 |
多端支持 | 微信小程序、H5、App、快应用等。 | 微信小程序、H5、React Native 等。 |
开发体验 | 单文件组件,类似 Vue CLI。 | 类 React 开发模式,支持多框架。 |
生态插件 | 插件市场丰富。 | 依赖社区生态,灵活性高。 |
适用场景:
回答: 浏览器缓存分为 强缓存 和 协商缓存,优先级顺序如下:
Cache-Control: max-age=3600
> Expires
。ETag
(优先级高) > Last-Modified
。If-None-Match
或 If-Modified-Since
请求服务器。缓存流程图:
浏览器请求资源 → 检查强缓存是否有效 → 有效 → 200 (from cache)
↓ 无效
→ 发起请求 → 检查协商缓存 → 有效 → 304
↓ 无效 → 200 + 新资源
回答: 事件循环(Event Loop)是浏览器处理异步任务的机制,执行顺序如下:
Promise.then
、MutationObserver
、queueMicrotask
。setTimeout
、setInterval
、DOM 事件、I/O 操作。示例:
console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve().then(() => console.log(3));
console.log(4);
// 输出顺序:1 → 4 → 3 → 2
回答:
状态码 | 类别 | 常见状态码 |
---|---|---|
1xx | 信息响应 | 100(继续)、101(切换协议) |
2xx | 成功 | 200(OK)、201(已创建) |
3xx | 重定向 | 301(永久重定向)、302(临时重定向)、304(未修改) |
4xx | 客户端错误 | 400(错误请求)、401(未授权)、403(禁止)、404(未找到) |
5xx | 服务端错误 | 500(内部错误)、502(网关错误)、503(服务不可用) |
回答:
优化方向:
transform
替代 top/left
)。工具支持:
回答: CDN(Content Delivery Network)通过分布式节点缓存资源,加速用户访问:
工作原理:
优势:
适用场景: