Javascript JS动画架构设计,实现最佳性能

Javascript JS动画架构设计,实现最佳性能,javascript,jquery,jquery-animate,gsap,Javascript,Jquery,Jquery Animate,Gsap,的性能提升非常显著 为了获得这些收益,该库做出了哪些基础架构决策和权衡?特别是,此引擎与flash版本相比有什么不同 jquery的构建/设计和优化是为了提高速度,它是为一致的工作流而构建的 它使用对象池,也就是循环使用多种类型的内部对象来最小化实例化 它为每个场景使用优化的循环 它使用信息对象来帮助/说明正在设置动画的属性 我不确定他们是否使用相同的缓解功能,但这也可能会有所不同 Tweenlite与tweenengine一样有着悠久的历史,它还具有许多jQuery中未包含的特性 格林斯托

的性能提升非常显著


为了获得这些收益,该库做出了哪些基础架构决策和权衡?特别是,此引擎与flash版本相比有什么不同

  • jquery的构建/设计和优化是为了提高速度,它是为一致的工作流而构建的
  • 它使用对象池,也就是循环使用多种类型的内部对象来最小化实例化
  • 它为每个场景使用优化的循环
  • 它使用信息对象来帮助/说明正在设置动画的属性
  • 我不确定他们是否使用相同的缓解功能,但这也可能会有所不同

Tweenlite与tweenengine一样有着悠久的历史,它还具有许多jQuery中未包含的特性

格林斯托克的同事们给出了很好的回答:

  • 全面使用高度优化的JavaScript(这需要很多 比如使用链表、局部变量、快速查找 表、内联代码、按位运算符、利用原型 而不是为每个实例重新创建函数/变量等)
  • 设计平台的结构,使其非常适合 在高压情况下,尽量减少函数调用和 确保事情是友好的
  • 在单个更新中进行更新 由requestAnimationFrame驱动的循环,只返回到 如有必要,设置超时()
  • 在内部缓存一些重要的值 以获得更快的更新
  • 对于CSS变换,我们计算矩阵值 如果有,则构造一个矩阵()或矩阵x3d() 旋转或倾斜,因为我们的测试表明它更快
  • 详情如下:

    +1一件很棒的事情是他们也用JS制作(我只知道Flash AS2和3)。我不知道。从提供的第一个链接来看,GreenSock和jQuery/从输出/最明显的区别是GreenSock使用整数,而jQuery似乎使用浮点。直接去GreenSock论坛问Jack,他会告诉你为什么它这么好。@Neil这似乎是部分原因: