2012-02-28 101 views
11

我都用了這些(Python和HTML5)的seperately,但是我渴望使用HTML5來繪製的東西和處理事物的客戶端使用Python的全功率在網上。我想我正在尋找途徑在實施方面下降。這裏有一些事情,我想如果可能的話做的事:混合HTML5 Canvas和Python的

  1. 有非常交互式數據,這將需要處理的服務器端被Python,但顯示和HTML5畫布本地操作。
  2. HTML5 Canvas上的可點擊組件,它將與服務器端通信。

有沒有人可以推薦的實現?即Google App Engine會有什麼用處? Django的?睡衣?

謝謝 - 道歉,如果這似乎有點模糊。我在嘗試一條路徑之前詢問是否有單挑以節省時間和精力。

+0

想想這個,有沒有辦法用python在HTML5畫布上拾取事件? – Androidian 2012-02-29 11:31:08

+0

想想這個,有沒有辦法用python在HTML5畫布上拾取事件?因此,例如,如果將數據時間線擴展到畫布繪製元素中,則python將對數據執行一些處理,並將處理後的數據發送回canvas元素進行顯示。 – Androidian 2012-02-29 11:43:50

+0

有沒有人有使用睡衣的經驗?它看起來像它會處理JS/Python路徑,但我不知道HTML5? – Androidian 2012-02-29 12:05:01

回答

11

在這種情況下,服務器端比客戶端更發達。 (豐富的JS庫是一個新的現象,都是。)Django是服務器上可以接受的選擇,儘管我至少會考慮Twisted

我在客戶端推薦:

  1. 的第一選擇是paper.js這是操縱帆布庫。卓越的性能,允許事件綁定,豐富的圖形操作,教程非常棒。與類似軟件相比,似乎也有非常平緩的學習曲線。

  2. 第二選擇將是raphael或類似的SVG庫。性能不如paper.js好,雖然它在很大程度上取決於屏幕上的內容。

你能詳細說明你將在客戶端上做什麼樣的事情嗎?可見對象的數量,將綁定到什麼對象的事件,您需要的圖形過濾器的類型等等,都會大量地告知此選擇。

你可能會發現自己的戰鬥來獲得客戶良好的圖形性能,因此預計要花費大量的時間上。

編輯:根據您的意見,我認爲您會發現任一解決方案都可行,所以我會傾向於paper.js只是因爲它更有趣一點,如果你確實去了某個意想不到的地方,它將能夠去那裏和你。

由於您的應用程序聽起來就像是有很多的圖表做,我建議你看看HighCharts或其他的圖表庫,其中有幾個,包括商業和非。除了生產用於營利應用程序,HighCharts本身免費提供所有產品,否則合理定價。

+0

大量的用戶體驗將從曲線和曲線中選擇數據,所以它的確可能非常密集。良好的綁定是至關重要的,我們必須非常努力地工作,因爲您希望在所有平臺上儘可能平滑地運行圖形。 – Androidian 2012-02-29 09:30:22

+0

也許我們想要做的更好的例子與Google的財務數據finance.google.com非常類似,但是對於一個非常不同的領域,但我們需要顯示與時間範圍有關的數據。 – Androidian 2012-02-29 10:53:59

2

像這樣的富客戶端控件一個可行的方法是使用一個堆棧,如:

  • [您的JavaScript用戶界面]
  • [一個js lib中圖形]
  • Backbone.js的用於管理對象的客戶端
  • Django的tastypie包裹你的Django對象以RESTful API
  • Django的定義後端
4

我做的正是你對在客戶端服務器端和HTML5畫布/ JavaScript的使用Django提到什麼。我對結果非常滿意,但是想指出你在客戶端使用Canvas所做的與你在服務器端爲Python使用的東西沒有任何關係。