Web項目開發過程中要找到完美的圖形解決方案比較困難,只能根據自己的需要,選擇自己最合適的畫圖方案。
Web圖表一般有以下幾種做法:
(1)使用客戶端控件技術
(2)使用服務器端生成圖片
(3)使用富客戶端技術
1、使用客戶端控件技術
應用微軟的ActiveX控件以及Java的applet技術對圖形的支持來顯示一個圖表。這種方式顯然對於客戶端要求太高,插件的開發相對麻煩,隨着現在主流瀏覽器放棄對控件的支持后,這種方式只適合一些局域網的應用,而對於因特網的環境就顯得不太適合。
2、使用服務器端生成圖片
直接在Web服務器端生成好圖表圖片文件后發送到瀏覽器。
優點:服務器端生成圖形,減輕客戶端負擔。
缺點:Web應用時,特別是動態生成圖片,會產生大量的冗余圖片數據。
3、使用富客戶端技術
根據服務器返回數據在瀏覽器端繪制圖表,一般有以下幾種方案:
(1)VML技術
VML相當於IE里面的畫筆,能實現你所想要的圖形,而且結合腳本,可以讓圖形產生動態的效果。
優點:基於XML標准,支持高質量的矢量圖形顯示。結合腳本,可以讓圖形產生動態的效果。
缺點:只能在IE瀏覽器或以IE為內核的瀏覽器才能用VML。
(2)SVG技術
SVG(可放縮的矢量圖形)是W3C在2000年8月制定的一種新的二維矢量圖形的格式。
優點:基於XML標准,采用文本來描述對象,具有交互性和動態性,完全支持DOM。
缺點:IE則依賴Adobe Systems的一款插件支持SVG。用戶必須下載、安裝這款插件才能在IE中顯示SVG格式圖像。
(3)多比控件
多比圖形控件出現簡化了這種開發難度,它是一款基於Web的矢量圖形控件,能夠檢測瀏覽器類型,自動選擇VML或SVG方案進行做圖,類似於網頁上的Visio控件,是目前國內外最佳的基於Web矢量圖案解決方案。多比圖形編輯器實現了圖形、圖像、文字的有機統一。它除了支持HTML中常用 的標記,如文本、圖像、鏈接、交互性、CSS的使用、腳本外,還提供了大量針對圖形、圖像、動畫的特定標記。對SVG圖形文件進行編輯管理的過程為:SVG圖形文件經XML解析器打開,並在內存中生成一個對象樹,用鼠標事件來驅動腳本執行,腳本通過DOM接口對象進行相關的操作,來實現圖形繪制、編輯等功能。
(4)Flash技術
Open Flash Chart是一個Flash圖表組件,很容易安裝,提供以下語言的API:PHP、Perl、Python、Java、Ruby on Rails、.NET來控件圖表。
優點:圖形效果好,根據服務器數據生成相應的圖形,可以適當編寫事件處理。
缺點:需要Flash插件支持,繪制特定的圖形需要專業的Flash技術支持。
(5)Canvas技術
<canvas>是一個新的HTML無素,這個元素可以被Script語言用來繪制圖形。例如可以用它來畫圖、合成圖像、做簡單的動畫。
優點:基於標准規范、靈活繪制各類圖形。
缺點:IE需要使用canvas.js類支持圖形的擴展。
(6)JavaScript圖形庫技術(jsgraphics)
JavaScript圖形庫可以在網頁上動態繪制圓、橢圓、斜線、折線、多邊形(三角形、矩形)。底層通過創建大量1px*1px的DIV實現,同時對於連續的像素進行優化,盡量地減少所需的DIV,因此有較好的性能,當然和Java2D、GDI+、OpenGL、DirectX、Flash、SVG、VML、HTML 、Canvas是無法相比較的。
優點:使用Web的基本技術實現圖形化,不需要任何的擴展或支持。
缺點:圖形非矢量,曲線情況下平滑度不夠,圖形較多時性能存在一定的問題。
原創地址:http://blog.csdn.net/oscar999