DEMO:分析强制同步布局

这个案例模拟几个图片来回的使用AnimationFrame(),尽管这是基于帧的动画的推荐使用方式,然而这里仍然存在值得考虑到问题。下面我们就使用Timeline分析。

<script>
window.onload=function(){
    var divs=document.getElementsByTagName("div"),
        test;
    function move(){
        for(var i=0;i<divs.length;i++){
             divs[i].style.backgroundColor="#"+Math.random().toFixed(6)*1000000;
             divs[i].style.left=(Math.sin(divs[i].offsetTop+new Date().getMilliseconds()*10)*10+50)+"px";
        }
    }
    test=window.requestAnimationFrame(move);
}   
</script>
加载过程的样本

可以清楚的看到Animation Frame Fired事件后有warning,并且有提示是test.html:37,点击进去,看代码

这个显然是因为计算left属性时有了强制同步布局

那我们将divs[i].offsetTop替换为一个不依赖的值i,

显然没有了warning,而且用时缩小了很多

对于瀑布流,我们该运用什么样的方案去提高程序运行速度呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文章转载于搜狗测试 前言:那些年我们用过的显示性能指标 相对其他 Android 性能指标(如内存、CPU、功耗...
    夜境阅读 5,264评论 0 4
  • 相关 x264编码示例 源码分析 h264编码原理复杂,参数众多。为了方便使用无论x264还是其他编码的实现框架,...
    Don_阅读 6,828评论 0 1
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,722评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,541评论 5 13
  • 说来惭愧到现在为止没有太多的收获通过朋友介绍加入践行,慢慢养成每天写作的习惯。虽然不是每天都在写但是尽可能的补上...
    姜能伟阅读 1,171评论 0 0

友情链接更多精彩内容