9

GreenSock アニメーション エンジンのパフォーマンスの向上は、かなり劇的です。

そのような利益を達成するために、このライブラリが行っている根本的なアーキテクチャ上の決定とトレードオフは何ですか? 特に、このエンジンはjQuery animateと何が違うのでしょうか?

4

2 に答える 2

2

greensock の人々からの素晴らしい回答:

  1. 全体的に高度に最適化された JavaScript を使用します (これには、リンク リスト、ローカル変数、クイック ルックアップ テーブル、インライン コード、ビットごとの演算子、インスタンスごとに関数/変数を再作成する代わりにプロトタイプを活用するなど、多くのことが必要です)。
  2. プラットフォームの構造を設計して、プレッシャーのかかる状況に非常に適したものにし、関数呼び出しを最小限に抑え、物事が GC フレンドリーであることを確認します。
  3. requestAnimationFrame によって駆動される単一の更新ループで更新を行い、必要な場合にのみ setTimeout() にフォールバックします。
  4. 更新を高速化するために、いくつかの重要な値を内部的にキャッシュします。
  5. CSS 変換の場合、マトリックス値を計算し、回転や傾斜がある場合は matrix() または matrix3d() を構築します。

詳細はこちら: http://forums.greensock.com/topic/9346-how-does-greensock-perform-b​​etter-than-other-solutions-for-animation /#entry37777

于 2014-04-22T20:25:07.260 に答える
1

フラッシュバージョンから私が知っているのと同じくらい速く:

  • そのビルド/設計およびスピードのために最適化された jquery は、一貫したワークフローのためにビルドされています。
  • インスタンス化を最小限に抑えるために、オブジェクトプーリング、つまり複数のタイプの内部オブジェクトのリサイクルを使用しています
  • すべてのシナリオに最適化されたループを使用する
  • 情報オブジェクトを使用して、どのプロパティがアニメーション化されているかを説明します。
  • 同じイージング関数を使用しているかどうかはわかりませんが、それも違いを生む可能性があります。

Tweenlite は tweenengine としての歴史が長く、jQuery にはない機能も数多く備えています。

于 2012-09-14T23:16:07.910 に答える