面试题答案
一键面试SSR 与 CSR 特点分析
- SSR(服务器端渲染)
- 优点:首屏加载快,利于SEO。因为页面在服务器端已经生成完整的HTML,直接返回给客户端,客户端只需加载少量资源即可呈现。
- 缺点:服务器压力大,每次请求都要进行渲染。
- CSR(客户端渲染)
- 优点:减轻服务器压力,页面交互性好,通过动态更新DOM实现局部刷新。
- 缺点:首屏加载慢,需要先下载JavaScript代码,在客户端进行渲染后才能呈现页面。
不同业务需求下的策略
- 内容展示型网站
- 策略:优先使用SSR。这类网站主要以展示内容为主,对SEO和首屏加载速度要求高。例如新闻网站、博客等。
- 结合Qwik特性:利用Qwik的即时恢复(Instant Hydration),在SSR生成HTML后,客户端能快速恢复交互。同时优化网络传输,将CSS和关键JavaScript文件提前加载,对于图片等资源采用合适的懒加载策略。
- 交互密集型应用
- 策略:初期可采用SSR提升首屏加载速度,后续交互使用CSR。比如电商平台的商品详情页,首屏展示商品信息用SSR,用户进行添加购物车、评论等交互操作采用CSR。
- 结合Qwik特性:Qwik的即时恢复能快速将SSR生成的静态页面转为可交互状态。资源加载顺序上,先加载与首屏相关的资源,对于交互功能相关的JavaScript延迟加载,在用户触发相应操作时再加载。
- 对SEO要求不高的内部应用
- 策略:可主要采用CSR,以减轻服务器压力,提高开发效率和交互性能。例如企业内部的办公系统,主要面向内部员工,对SEO无要求。
- 结合Qwik特性:Qwik的即时恢复特性依然能在CSR场景下快速让页面具备交互性。在资源加载方面,可采用代码分割,按需加载组件,优化网络传输。
网络传输优化
- 压缩资源:对CSS、JavaScript和HTML文件进行压缩,减少文件大小,加快传输速度。
- CDN(内容分发网络):使用CDN分发静态资源,使资源从距离用户更近的服务器节点获取,提高加载速度。
- HTTP/2:采用HTTP/2协议,它支持多路复用,能同时传输多个请求,优化网络传输性能。
资源加载顺序
- 关键CSS优先:确保与首屏样式相关的CSS文件优先加载,使页面能尽快以正确的样式呈现。
- 延迟非关键JavaScript:对于不影响首屏渲染和初始交互的JavaScript文件延迟加载,可使用
async
或defer
属性。 - 图片懒加载:对于页面中不在视口内的图片,采用懒加载策略,当图片进入视口时再加载,减少初始加载的资源量。