我需要爲「標準」製圖選擇庫:餅圖,線條和條形圖。Pie,bar,line:SVG/VML優於Canvas
從我讀過的內容看來,最好的格式是SVG/VML,比如Highcharts。在所有主流瀏覽器中,SVG已經成爲標準,現在IE 9接受它。重新縮放和導出比Canvas更容易。
不過,我看到幾個圖表庫依賴於Canvas。我錯過了什麼嗎?是否有任何理由考慮Canvas over SVG的這種應用程序?
我需要爲「標準」製圖選擇庫:餅圖,線條和條形圖。Pie,bar,line:SVG/VML優於Canvas
從我讀過的內容看來,最好的格式是SVG/VML,比如Highcharts。在所有主流瀏覽器中,SVG已經成爲標準,現在IE 9接受它。重新縮放和導出比Canvas更容易。
不過,我看到幾個圖表庫依賴於Canvas。我錯過了什麼嗎?是否有任何理由考慮Canvas over SVG的這種應用程序?
一般情況下,您都可以獲得相同的結果。兩者最終都將像素繪製到用戶的屏幕上。的主要差別是HTML5畫布給出了結果你們像素級別的控制(讀,寫),而SVG是保留模式圖形API,使得它很容易處理的事件或操作JavaScript或SMIL作品動畫和所有重新繪製照顧你。
一般情況下,我建議使用HTML5畫布,如果您:以上效果
使用SVG,如果您:
畫布不需要,除非你想要重操縱/動畫或將要有10,000多個圖表。更多關於性能分析here.
同樣重要的是使區別:圖表和圖表是兩回事。顯示一些條形圖與(例如)使用10,000個可移動的,可鏈接的,可能動畫的對象製作圖表流程圖非常不同。
每個SVG元素都是DOM元素,並且向DOM中添加10,000或100,000個節點會導致難以置信的減速。但是向Canvas添加許多元素是完全可行的,並且可以相當快。
如果它可能會讓你感到困惑:RaphaelJS(在我看來,最好的圖表SVG庫)使用canvas這個詞,但這與HTML <canvas>
元素無關。
您的主題中包含「更好」的單詞,這是一個明確的指示器,表明您的正軌可以作爲主觀問題關閉。此外,更糟糕的是,您實際上並未指定您的衡量「更好」的標準。大多數瀏覽器都可以訪問?大多數用戶可以訪問?最快呈現類似的結果?最少的內存使用量?最簡單的腳本交互與?數據可被搜索引擎抓取? – Phrogz 2011-05-09 21:30:24
我希望我首先知道的標準...例如搜索引擎是一個很好的,我甚至沒有想過。 – Christophe 2011-05-09 23:48:43