2

このコード行がコード内のさまざまな場所で繰り返されていることに気付きました。

var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");

まず、これがパフォーマンスに与える影響について疑問に思っています。たとえば、非常に頻繁に呼び出される再描画コードでは、それを行います。同様に、JQuery を使用して要素への参照を取得することもできます。

これがどれだけ大きな取引なのか気になりました。Web サイトを適切にプロファイリングする方法がよくわかりません。どうにかしてコンテキストへのグローバル参照を作成したいのですが、グローバル スコープで実行しようとすると実行されません。キャンバスへの参照を遅延して返す関数を持つ唯一の方法はありますか?

4

1 に答える 1

4

描画コードでそれを行うのをすぐにやめてください。描画コードでそのようなことをするのをやめてください。

コンテキストをどこかに保存し、そのコンテキストを描画コードに渡します (先ほど作成したこの 5 セントの例のように)。

DOM に「触れる」のは遅いです。遅い。どのようにスライスしても構いません。できるだけ少なくしてください。この件については、Zakas によるHigh Performance JavaScriptで詳しく説明されています。

JavaScript のパフォーマンスに関心がある場合は、ぜひそのタイトルを見てください。

于 2012-06-04T04:20:07.227 に答える