2024年Web前端最全如何系统地进行前端性能优化【监控篇】(1),前端开发零基础

最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

大厂面试题

面试题目录

前端性能又分为加载性能和运行时性能

加载性能度量

=================================================================

加载性能就是用户从进入到页面到页面真正可用的这个过程的耗时。我们可以用一道经典的面试题入手:用户从键入url按下回车之后到看到页面这其中发生了什么?

  • DNS解析:把域名解析成ip地址

  • TCP连接建立

  • 发送http请求

  • 服务器解析http请求并返回结果

  • 浏览器解析返回结果

而我们要做的就是记录这些过程的耗时: 现代浏览器提供了 performance 对像供我们方便地提取这些数据。而且兼容性在这。其中 timing 对象详细记录每个节点的时间戳。

将相关时间节点相减就能得到相应过程的耗时。 作为开发,我们通常更关注从服务器读取的时间,所以取 fetchStart 为起点。 下面是一些常用的时间计算:

const { fetchStart, domainLookupStart, domainLookupEnd, domInteractive, domContentLoadedEventStart } = performance.timing

// DNS查找时间

domainLookupEnd - domainLookupStart

// 白屏时间

domInteractive - fetchStart

// 首屏时间

domContentLoadedEventStart - fetchStart

复制代码

以上计算时间更多用于SSR渲染,而如今前端现状还有相当部分是SPA结构,由JS渲染在客户端。为了更好地满足监控指标与用户体验的契合。Google 提出 FP  / FCP / FMP / TTI 等指标帮助我们统计相关数据,我们常用下面两条

FCP(First Contentful Paint) 首次绘制任何文本,图像,非空白canvas或SVG的时间点。就是用户第一次看到有意义的内容的时间。通常可以当作这个时间为白屏时长。获取API

window.performance.getEntriesByType(‘paint’)

TTI(Time To Intercative) 可交互(可用时间), 用于标记应用已进行视觉渲染并能可靠响应用户输入的时间点。我们通常用这个值作为页面的首屏时间。浏览器并没有直接提供api去获取。但是google提供 github.com/GoogleChrom… 去获取。

运行时性能度量

==================================================================

大部分业务并不需要运行时的监控。但是一些重业务场景,比如说文本编辑器、线上课堂、画板。顿卡对用户体验的伤害巨大,也是用户更无法接受的。对于这类业务,我们开发测试场景可以用 chromeperfermance 工具去测试、检测、定位性能顿卡。但是我们仍然需要用户测的监控来掌握业务线上实际运行情况。 requestAnimationFrame 通常用来实现动画。但是这里我们也可以用来作为帧率的监控。大概简单思路如下:

const everyFrameCostTime = []

let timestamp = Date.now()

function detect() {

const now = Date.now()

const cost = now - timestamp

timestamp = now

everyFrameCostTime.push(cost)

requestAnimationFrame(detect)

}

当cost 连续几次 高于一个 特地阈值,就可以视为页面顿卡了。这里可以视具体业务场景而定。

算法刷题

大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

.cn/img_convert/c582a01373152bb4cd38bc6ad5cc8027.png)

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
想要从零开始学习Web前端开发,你需要掌握以下几个方面: 1. HTML:HTML 是网页的基础语言,它定义了网页的结构和内容。学习 HTML 可以帮助你了解网页的基本结构和元素,以及如何使用标签、属性和样式来创建网页。 2. CSS:CSS 是网页的样式表语言,它可以控制网页的外观和布局。学习 CSS 可以帮助你了解如何使用样式来美化网页,包括颜色、字体、背景等方面。 3. JavaScript:JavaScript 是网页的脚本语言,它可以为网页添加交互和动态效果。学习 JavaScript 可以帮助你了解如何处理用户输入、操作 DOM 元素、发送网络请求等常见操作。 4. 前端框架:前端框架是一种提供了高级工具、组件和模板的库,可以帮助你更快速地开发网页。常见的前端框架有 React、Vue 和 Angular 等。 推荐的学习路线如下: 1. 先学习 HTML 和 CSS,这是入门的基础,可以通过在线教程或者视频课程进行学习。 2. 学习 JavaScript,这是实现交互和动态效果的必备技能,可以通过阅读书籍或者参加线上课程进行学习。 3. 学习前端框架,这可以大大提高开发效率和代码质量。建议选择一种主流的框架进行深入学习。 4. 参加实战项目和社区活动,这可以帮助你将所学知识应用到实际项目中,同时也可以结交志同道合的朋友和行业专家,获取更多学习和成长的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值