定时器怎么优化提升页面性能?

2020-05-11 19:12:43 +08:00
 Tlin

写了一个定时器获取本地时间显示在页面上( setInterval ),但是切换到其它页面或者缩小挂后台,等一段时间后就很卡。用了 chrome 自带的 perforance 查看,蓝色线条逐步上升,内存应该泄漏了。 一般这种你们怎么优化呢?网上搜了一些,感觉都没有具体怎么做。

2199 次点击
所在节点    JavaScript
6 条回复
rabbbit
2020-05-11 19:24:54 +08:00
一般用 setTimeout 代替 setInterval

function sInterval( fn, time) {
  function callback() {
   setTimeout(function () {
    fn();
    callback()
  }, time)
 }
  callback();
}
SilentDepth
2020-05-12 00:46:45 +08:00
用 requestAnimationFrame
Tlin
2020-05-12 18:33:25 +08:00
@rabbbit @SilentDepth 试了,还不错的。谢谢了。但是用 requestAnimationFrame 过段时间后存在动画卡住。就是读秒会不动,但是分以上的部分还是会动的。有些无解
SilentDepth
2020-05-12 18:37:05 +08:00
@Tlin #3 秒不动分动?诡异。你发代码出来看看
Tlin
2020-05-12 19:23:57 +08:00
@SilentDepth 刚吃好饭。因为我使用 css3 的翻转等动画,造成动画卡死,时分秒都会卡。如果仅是获取时分秒,不做特效就行。这点我需要优化一下
SilentDepth
2020-05-12 20:11:53 +08:00
@Tlin #5 动画也用 rAF 触发或计算就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX