赞
踩
navigationStart / end
表示从上一个文档卸载结束时 => 如果没有上一个文档,这个值和fetchStart相等
unloadEventStart / end
标识前一个网页unload的时间点
redirectStart / end
第一个http重定向发生和结束的时间
fetchStart
浏览器准备好使用请求获取文档的时间
(from cache)
domainLookupStart / end
HTTP开始建立连接的时间
connectStart / end
TCP开始建立连接的时间
secureConnectionStart
HTTPS连接开始的时间
requestStart / end
responseStart / end
domLoading
开始解析渲染DOM树的时间 => readyState变成loading => readystatechange
domInteractive
完成解析 => dom树解析完成时间
domContentLoadedEventStart / end
加载网页内资源的时间
domComplete
Dom完全解析完成
<script>
javascript:(() => {
var perfData = window.performance.timing;
var pageLoadTime = perfData.domComplete - perfData.navigationStart;
console.log("页面加载耗时:", pageLoadTime, 'ms');
})();
</script>
衡量装载性能:LCP应该再页面首次开始加载后2.5s内发生
a. 最大内容包含了哪些?
b. LCP值低下的原因
c. 针对性的改造
服务器优化
缓存HTML离线页面,缓存页面资源,减少浏览器直接对资源的请求
=> 缓存机制
对图片的优化,进行图片合理化使用,降低图片大小,加快请求速度
=> 图片上传格式 | 云资源管理
对图片的优化,进行图片合理化使用,降低图片大小,加快请求速度
=> 图片上传格式 | 云资源管理
重写、压缩、注释过滤……减少最终文件大小,加快加载速度
=> webpack vite 工程化打包
渲染阻断优化
CSS + JS => 延迟处理
首屏优化 => 懒加载、异步加载
CSS模块优化
SSR服务端渲染
衡量交互性,页面的FID应该小于100ms
a. 减少JS的执行时间
缩小压缩JS文件
延迟加载不需要的JS
=> 模块懒加载 | tree shaking
尽量减少未使用的polyfill
b. 分解耗时任务
c. worker
web worker | service worker
// 1. web worker // main.js // 新增worker const myWorker = new Worker('worker.js'); // 与main thread之间通信 myWorker.postMessage('hello'); myWorker.onmessage = function(e) { console.log(e.data); } // worker.js // 接受消息 self.onmessage = function(e) { console.log(e.data); // 回调逻辑 let workResult = ''; self.postMessage(workResult); } // 2. service worker // main.js navigator.serviceWorker.register('./service-worker.js'); // service-worker.js self.addEventListener('install', function(event) { //... }) self.addEventListener('fetch', function(event) { //... })
测量视觉稳定性 - 页面稳定性在加载过程中以及渲染后CLS小于0.1
会带来偏移的因素:图片、内容插入、字体
a. 不使用无尺寸元素
=> srcset & sizes
<img srcset="yy-320w.jpg 320w,
yy-480w.jpg 480w
yy-800w.jpg 800w"
sizes="(max-width: 320p) 280px
(max-width: 480p) 440px
800px"
src="yy.jpg" alt="yy pic">
b. 整体化内容插入 => 影响整体布局 => 重排 => 重绘
c. 动态字体控制
// 加载完默认字体再显示 => 先用默认字体渲染,下载完成之后,再替换成后续字体
@font-face {
src: local('xxx Regular'), url(http:// fonts.xxxx.com/xxx.woff2)
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。