この JS ヒートマップ ライブラリの描画速度を改善しようとしています:
http://www.patrick-wied.at/static/heatmapjs/
アニメーションを機能させることを目的としています。それがどのように機能するかの要約バージョン-すべてのデータポイント( <canvas>
DOMに挿入されない上)を円として描画します-すべて同じ半径ですが、さまざまなアルファを使用します:
ctx.shadowColor = ('rgba(255,0,0,'+((count)?(count/me.store.max):'0.1')+')');
ctx.beginPath();
ctx.arc(x - 1000, y - 1000, radius, 0, Math.PI * 2, true);
ctx.closePath();
ctx.fill();
それらがすべて描画されるとgetImageData()
、そのキャンバス上で実行され、アルファに従って各ピクセルに色が付けられ、ページに存在putImageData()
する最終版に適用<canvas>
されます。
当然のことながら、その操作の中で最も集中的な部分は描画部分です。ブラウザーの FPS に影響を与えずに将来のフレームを事前にレンダリングできるように、その責任を Web ワーカーに委任できるようにしたいと考えています。<canvas>
ただし、Web ワーカーには DOM アクセス権がなく、タグを作成できません。誰もこれを回避する方法について何か素晴らしいアイデアを持っていますか? キャンバス タグなしでこれらのピクセル アルファを計算する方法はありますか?