繰り返し画像の背景を<canvas>(うん、私は初めてです<canvas>)に描画する方法を調べているときに、2つの方法があることがわかりました。
- ループで使用
drawImage()してfor、画像を手動で繰り返します<canvas> - を使用してパターンを作成し、そのパターンに'sを
context.createPattern()設定してから、を使用して、全体にパターンを含む長方形を描画します。<canvas>fillStylefillRect<canvas>
明らかに、私が最初に行ったのは、どちらが速いかを確認するためのJSPerfテストを作成することでした(「PrematureOptimisation™—それは機能します」)。
違いは最近のブラウザで減少し、最新では消えるように見えますがdrawImage()、方法は方法を上回る傾向があるようです。createPattern()
createPattern()しかし、私はその方法がもっと速くなることを期待していました。基本的createPattern()には手動の方法と同じことをすると思いましたdrawImage()が、組み込みの方が速くなります。
createPattern()メソッドが遅い理由はありますか?createPattern()適用された形状全体にパターン画像を繰り返し描画する以外のことはありますか?テストを書くときに間違えたことがありますか?