我想比较jQuery的动画功能和纯CSS3过渡的性能。我发现有requestAnimationFrame API来衡量性能,但它似乎只能用于canvas元素?
与CSS3和canvas相比,是否有一种测试绝对定位性能的好方法?
stats.js是否有帮助且值得信赖?你有什么经历?
我构建了这个jsPerf test。不幸的是,jQuery.on方法没有被执行。 :(
答案 0 :(得分:0)
我认为转换/动画规则应该在CSS中,因为它们是表示元素,而JavaScript则用于行为。出于这个原因,我会坚持使用CSS转换并让JavaScript进行表单验证/ ajax / etc.但这并不意味着JavaScript是一种用于动画的错误技术,网络的本质是你可以通过各种方式使用技术,因为它们之间存在很多重叠。
我为您提供了一些我认为您可能会觉得有用的链接; Paul Irish/Chris Coyier's discussion over translate,jQuery和CSS之间的animations in CSS transitions vs Javascript和link showing the framerate comparison视频。 您可以在第三个链接中看到CSS肯定比JavaScript更快更流畅;我猜是因为它是硬件加速的。
一些类似结论的stackoverflow问题:what's faster? CSS3 transitions or jQuery animations? :: Performance of CSS Transitions vs. JS animation packages
你是对的,requestAnimationFrame
函数仅适用于canvas元素。如果您计划将CSS过渡与画布输出同步,我建议使用它,因为它是为它构建的,而不是与setInterval
一起使用。