首先Canvas是比html和css晚出現的,它的出現是為了彌補瀏覽器沒有較為底層的繪圖API的缺點。基於圖形,影象的應用(例如遊戲)以往只能藉助於Flash(Flex)這樣的外掛來實現。具體再細分無外乎2D和3D,這就是目前Canvas的定位。
因此Canvas的作用傾向於處理圖形影象的。主要用來製作遊戲、圖表、模擬器等。
很多基於Canvas的應用,還是有渲染DOM的需求的,比如表格繪製,頁面區域性截圖,演示軟體或者電子白板類似的應用動態的拖拽某些內容,元件進來渲染。我們在開發基於Canvas的應用的時候,是希望所有元素都能直接繪製到畫布上的,因為其他HTML元素只能透過translate類似的方式和畫布繪製的元素的元素進行配合,這裡事件處理需要單獨控制。
如果是用Canvas來實現一個前端頁面,從效能和效率來說是非常低的。從開發效率來說的話,也是加大工作量的,很多原本很簡單的小功能估計都要寫一大堆函式吧。所以Canvas有他自己該乾的是,很多東西不是可以就行,而是要講究適合。
至於替代,談不上。不是所有應用都要用Canvas的,但是所有應用都要用DOM。很多東西,一句宣告性的 html就搞定了,而不是幾百行的命令式的Canvas繪圖API的呼叫。
找最適合自己的解決方案最重要!最重要!最重要!
Canvas讓htmI5有了新功能,比如VPN適時桌面資訊的摸擬與復原。其功能讓HTmL5的web繪圖功能,甚至為HTmL5-oS提供了一種可能。
首先Canvas是比html和css晚出現的,它的出現是為了彌補瀏覽器沒有較為底層的繪圖API的缺點。基於圖形,影象的應用(例如遊戲)以往只能藉助於Flash(Flex)這樣的外掛來實現。具體再細分無外乎2D和3D,這就是目前Canvas的定位。
因此Canvas的作用傾向於處理圖形影象的。主要用來製作遊戲、圖表、模擬器等。
很多基於Canvas的應用,還是有渲染DOM的需求的,比如表格繪製,頁面區域性截圖,演示軟體或者電子白板類似的應用動態的拖拽某些內容,元件進來渲染。我們在開發基於Canvas的應用的時候,是希望所有元素都能直接繪製到畫布上的,因為其他HTML元素只能透過translate類似的方式和畫布繪製的元素的元素進行配合,這裡事件處理需要單獨控制。
如果是用Canvas來實現一個前端頁面,從效能和效率來說是非常低的。從開發效率來說的話,也是加大工作量的,很多原本很簡單的小功能估計都要寫一大堆函式吧。所以Canvas有他自己該乾的是,很多東西不是可以就行,而是要講究適合。
至於替代,談不上。不是所有應用都要用Canvas的,但是所有應用都要用DOM。很多東西,一句宣告性的 html就搞定了,而不是幾百行的命令式的Canvas繪圖API的呼叫。
找最適合自己的解決方案最重要!最重要!最重要!