2023 年终总结

关于 2023 年乃至最近三年的总结

关于面试

其实面试和工作有相当大的不同。
最近三年一直在舒适圈 (讲道理沪江呆着其实还是挺舒服的,如果产品没跑路的话) 没怎么面试,最近一个月才开始重新面试,面的也不多就四家公司。

  • 一家到 hr 薪资谈不拢
  • 一家的确是准备不行的
  • 一家 offer 但是基本平薪准备下周入职
  • 一家技术感觉还行但没消息。

算了先入职,看后面的情况吧。 跑路了,跑路了。封闭 996 开发,闻所未闻,见所未见。经过这一下子,我也是感悟出来,没必要因为暂时不工作焦虑。三点一线的工作真的很久了,是时候停下来,好好想想工作的意义。在沪江写了很多垃圾代码了,真的不想再写了,更别说 996 写屎山。

我现在就想不管花多长时间,找一份自己喜欢有价值的工作了。

再说到面试上,面试是一件需要十足准备的事情,应该多看看别人的面经,但是现在有娃了,自己的时间并不多。基本就这几次面试吧,但是总体感觉上其实聊到一个东西挺多的,基本都有聊到个 requestAnimationFrame 这个东西。

好好沉淀,迎接新生。

requestAnimationFrame

  • 与浏览器刷新率同步requestAnimationFrame会将回调函数的执行时间调整到浏览器的下一次重绘(repaint)之前。由于大多数现代设备的屏幕刷新率大约是 60Hz,这意味着浏览器大约每 16.7 毫秒重绘一次屏幕。通过与浏览器的重绘过程同步,requestAnimationFrame 确保每次浏览器重绘时都能执行一次动画更新,从而达到平滑动画的效果。

  • 高效的帧率控制:当使用 requestAnimationFrame 时,浏览器能够智能地限制动画的帧率,以匹配显示设备的刷新率,从而避免不必要的计算和重绘,这有助于减少 CPU 负荷,提高性能。

  • 减少掉帧现象:由于 requestAnimationFrame 是在浏览器的下一次重绘之前执行,它能够最大限度地减少掉帧现象,即使在高负载情况下也能尽可能地保持动画的流畅性。

  • 递归调用:为了实现连续的动画效果,动画的每一帧通常会在当前帧的 requestAnimationFrame 回调函数中再次调用requestAnimationFrame,从而创建一个递归循环。这样可以保证在每一次浏览器重绘之前都有一个新的动画帧准备好,形成了连续的动画效果。

  • 智能暂停:当浏览器标签页不可见或最小化时,requestAnimationFrame 会智能地暂停调用回调函数,这样可以避免在不可见的标签页上浪费计算资源,同时也意味着当标签页重新可见时,动画能够无缝地继续执行。

下面是一个使用例子