课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
性能优化一直都是软件开发程序员需要长期关注的一个问题,下面我们就通过案例分析来了解一下,web前端性能优化常用方法都有哪些。
渲染
内容的渲染可通过多种方法实现,其中每一种都拥有独特的优势与缺点:
服务器端渲染(SSR)是指在服务器端为浏览器提供终HTML文档的过程。优势:搜索引擎可以直接抓取网站而无需执行JavaScript(SEO)、快速初始页面加载、代码仅存在于服务器端。短板:非富网站交互、整页重新加载、浏览器功能受限。
客户端渲染是指利用JavaScript在浏览器当中进行内容渲染的过程。优势:富网站交互、在初始加载后可快速呈现路由变更内容、支持现代浏览器功能(例如配合ServiceWorkers实现离线支持)。短板:SEO友好性差、初始页面加载缓慢、通常需要在服务器端实现单页面应用程序(SPA)与API。
预渲染类似于服务器端渲染方法,但渲染会提前发生在构建时而非运行时。优势:built静态支持文件通常比服务器运行方法更简单、SEO友好性高、快速初始页面加载。短板:需要在执行任何代码变更时提前进行完整页面重新加载、非富网站交互、浏览器功能访问限制。
缓存
尽可能多地利用缓存处理请求是改善性能水平的关键所在。立足CDN层级进行缓存,将能够更快地为新用户提供响应。而通过发送Cache-Control头进行缓存,则可加快浏览器中重复请求的响应速度。
大多数构建工具(例如Webpack)允许用户向文件名当中添加哈希值。由于指向这些文件的任何变更都会产生新的输出文件名,因此大家可以安心将文件添加至缓存当中。
编码
目前,所有主流浏览器都支持利用gzip加Content-Encoding标头进行数据压缩。这意味着面向浏览器的发送数据量更低,从而带来更快的内容传递速度。此外,如果浏览器支持,大家也可以尝试使用效率更高的brotli压缩算法。
代码拆分
使用代码拆分是另一种能够显著提高JavaScript性能的好办法。其本质在于分解代码片段并仅向用户交付当前所需要的部分。以下是关于代码拆分的相关示例:
在不同的JavaScript代码块间分别加载路由机制。
拆分那些在页面中无法立即显示的部分,例如弹出框以及页面下方的页脚。
Polyfills与ponyfills可支持全部主流浏览器当中的各新浏览器功能。
利用Webpack的SplitChunksPlugin防止代码重复。
按需定位文件,以避免一次性发送所有受支持的语言。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。