キャンバスタグを使用するというJamesBlackの提案は非常に優れていますが、IEで更新されていないブラウザが必要です。それともそうですか?グーグルのおかげで、IE内でChromeレンダラーを使用できるようになります。このようにして、動的グラフでHTML5対応のブラウザー(Gecko、Webkit、およびPresto)をターゲットにし、IEユーザーにGoogleのアドオンがリリースされたらインストールするように依頼します。IE以外のすべてのネイティブサポートと、IE用のGoogleのExplore Canvasプラグインcanvas
のおかげで、クロスブラウザで動作します。IE用のいくつかのプラグインのおかげで、クロスブラウザでもサポートを利用できます。IE用のChromeレンダラーが必要な場合は、他に何も必要ないことに注意してください。SVG
グラフを使用するcanvas
かsvg
、実行することができます。また、実行するためのライブラリがすでにいくつかあります。どちらのテクノロジーでも動的グラフを作成できますが、いくつかの異なるアプローチがあります。
SVG キャンバス
-------------------------------------------------- -----------------------------
シーンDOMがあります(ただし、SVG DOM)単一のHTML要素、
スクリプト駆動型のレンダリング
形状の取引ピクセルの取引
HTML(XHTMLではない)と混合するのはやや難しい両方で画像のように動作します
イベント処理が簡単イベント処理が難しい
動的ラベルを追加するのは非常に簡単なので、やりたいことをやろうと思いますがSVG
、疑似3D散布図用の真に柔軟なAPIを作成するのは難しいでしょう。
問題svg
は、非常に柔軟な言語を作成しようとすると、非常に複雑な言語になることです。ここでは、同じことを行う両方のライブラリで記述されたコードを見ることができます。
SVG
var rect = document.createElementNS(SVG_NS, "rect");
rect.setAttribute("x", "5");
rect.setAttribute("y", "5");
rect.setAttribute("width", "20");
rect.setAttribute("height", "20");
rect.setAttribute("fill", "red");
parent.appendChild(rect);
var poly = document.createElementNS(SVG_NS, "polygon");
poly.setAttribute("fill", "green");
poly.setAttribute("points", "-40,40 0,-40, 40,40");
parent.appendChild(poly);
キャンバス
with (ctx) {
fillStyle = "red";
fillRect(5, 5, 20, 20);
}
with (ctx) {
fillStyle = "green";
beginPath();
moveTo(-40, 40);
moveTo(0, -40);
moveTo(40, 40);
closePath();
fill();
}