JS动画建筑设计,以获得最佳性能

时间:2012-09-14 16:05:45

标签: javascript jquery jquery-animate tweenlite tweenmax

GreenSock animation engine的效果提升非常引人注目

这个图书馆为实现这些收益而制定了哪些基础架构决策和权衡取舍?特别是,这个引擎与jQuery animate不同的是什么?

2 个答案:

答案 0 :(得分:2)

绿党的人们给出了很好的答案:

  1. 全面使用高度优化的JavaScript(这需要很多 比如使用链表,局部变量,快速查找等 表,内联代码,按位运算符,利用原型 而不是为每个实例重新创建函数/变量等。)
  2. 设计平台的结构,使其非常适合自己 以及高压情况,最小化函数调用和 确保事情对gc友好。
  3. 在一次更新中进行更新 由requestAnimationFrame驱动的循环,只回落到 如有必要,请设置setTimeout()。
  4. 在内部缓存一些重要值 更快的更新。
  5. 对于CSS变换,我们计算矩阵值 并且当有任何时候构造matrix()或matrix3d() 旋转或倾斜,因为我们的测试表明它更快。
  6. 更多信息: http://forums.greensock.com/topic/9346-how-does-greensock-perform-better-than-other-solutions-for-animation/#entry37777

答案 1 :(得分:1)

我从flash版本中得知:

  • 它的构建/设计和优化速度,jquery是为一致的工作流程而构建的。
  • 它使用对象池,即回收多种类型的内部对象以最小化实例化
  • 为每个场景使用优化循环
  • 使用info对象来帮助/说明动画的属性。
  • 我不确定他们是否使用相同的缓动功能,但这也可能有所不同。

Tweenlite作为tweenengine具有悠久的历史,它还具有jQuery中未包含的许多功能。