私はまだJavascriptに少し慣れていないので、コードの多くの場所でJQueryを使用して次のようなキャンバス要素への参照を取得していることに気付きました。
$('#myCanvas')[0].getContext('2d');
頻繁に呼び出される可能性のある多くの場所にサイトがあるため、サイトの速度が低下しているのではないかと疑っています。理想的には、これを1回実行して、任意のjavascriptページからコンテキストにアクセスします。
グローバル変数を作成しようとしましたが、機能しませんでした(おそらく、ページが読み込まれる前に実行されるため)。代わりに、最初に参照したjavascriptファイルのグローバルスコープにこの関数を配置しました。
var drawingCanvasContext;
function getDrawingCanvas() {
if (drawingCanvasContext == null) {
drawingCanvasContext = $('#myCanvas')[0].getContext('2d');
}
return drawingCanvasContext;
}
したがって、コードでキャンバスが必要なときはいつでも、そのメソッドを呼び出すだけです。これが珍しい欲求ではないかと思うので、適切な解決策に興味があります。関数ではなく変数であり、これらすべてのnullチェックなしでグローバルにアクセスできるようにしたいと思います。誰かがこれを達成する方法を知っていますか?ありがとう。