前端性能优化(二)

Feb 23, 2022|Oct 23, 2023
Asuhe
Asuhe
type
status
date
slug
summary
tags
category
icon
password

页面优化

一个页面从输入url到最终呈现整个流程可以分为资源加载过程和页面渲染过程。优化页面时我们可以从这两个角度去思考得到一些性能调优的思路

加载过程

  • DNS预取:首先从地址栏输入一个url我们需要将url地址解析,获取其中的主机地址,然后再对主机地址发送请求获取资源。这里我们先需要进行DNS查询,而DNS查询这个过程我们可以让浏览器进行DNS预取加快查询,电脑主机会先从本机DNS缓存中查找域名映射,若没有则会默认进行DNS递归查询
  • TCP preconnect:tcp调优、HTTP/2、keep-alive
  • http缓存:让本地客户端缓存一些常用资源、from cache、from disk
  • CND加速:多地分布服务器资源
  • 合并请求:如雪碧图、nignx模块、SSR服务端渲染
  • 减小资源体积:减小cookie体积(为什么cookie才4KB容量)、图片压缩、gzip压缩
  • 文档加载:css样式放在html文档头部,js脚本放在html文档末尾、异步加载js

渲染过程

  • 合并DOM操作,减少DOM操作
  • 尽早开始执行js,用DOMContentLoad
  • 懒加载
  • 对DOM查询进行缓存
  • SSR服务端渲染
  • 使用防抖和节流

检测页面的内存泄漏

之前面试的时候被问到过这个问题,如何快速检测出页面存在内存泄露情况。当时完全懵了,不知道怎么样调试才能检测出。后来去网上搜找到了一篇文章讲的十分好,在此记录一下。How to find memory leaks in JavaScript
VUE基础(五)Javascript中的this指向机制