计算项目首屏时间
1.performance
const startTime = window.performance.timing.navigationStart; // 获取页面开始加载的时间点 const whiteScreenTime = window.performance.timing.domLoading - startTime; // 获取白屏时间console.log(`白屏时间:${whiteScreenTime}ms`); window.addEventListener('load', () => { const firstPaintTime = window.performance.getEntriesByType('paint')[0].startTime; // FP const firstContentPaintTime = window.performance.getEntriesByType('paint')[1].startTime; // FCP });
const observer = new MutationObserver(callback); observer.observe(document, { childList: true, // 监测子节点的变化(元素的添加或删除) subtree: true // 监测子树的变化(深层元素的修改) }); function callback(mutationsList) { let firstScreenTime = 0; mutationsList.forEach(mutation => { // 只关注DOM元素的添加和属性变化 if ((mutation.type === 'attributes' && mutation.attributeName === 'style') || mutation.type === 'childList') { // 检查DOM元素的变化 // 你可以在这里根据项目需要查找首屏元素的特定条件,比如特定的CSS类或ID if (!document.querySelector('.loading').style.display) { // 页面首屏渲染完毕,首屏元素被找到,记录首屏时间 firstScreenTime = performance.now(); // 停止观察,避免重复计算首屏时间 observer.disconnect(); } } }); if (firstScreenTime > 0) { console.log(`首屏时间:${firstScreenTime}ms`); // 可以在这里执行首屏渲染完毕后的操作 } }
不停学习,热爱是源源不断的动力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器