2010-03-30 105 views
2

我想做一個統計頁面,它將顯示幾個數據和圖表。
圖表需要是圖片,以便用戶可以將其保存/拖放到他/她的個人報告中。在瀏覽器或臨時圖像上呈現圖像?

我使用Gruff Graphs for Ruby生成圖表,但我不知道顯示結果安全和受保護的最佳方式。

我的一些想法/嘗試的是:

  1. 圖表保存到一個文件(JPG,PNG)? 問題:數據是提供給任何人(沒有獲得cron的,從時間刪除數據時)

  2. 呈現在瀏覽器(必須在IE瀏覽器)?

  3. 使用JavaScript(Raphaël-JavaScript Library)或Google API並輸出PDF報告(需要插件或寶石,右)?

  4. 使用send_data? 我試圖輸出其他方式比內聯,因爲我需要顯示其他數據,這可能嗎?

感謝您的任何幫助。

回答

1

雖然很煩人,但您可以隨時剪掉舊條目作爲生成過程的一部分。如果你沒有像cron這樣的後臺工作工具,這實際上只是你需要做的事情。根據文件「修改時間」進行檢查通常是最好的方法,但這也會影響到舊的圖像鏈接。

基於畫布的方法明顯優於服務器生成的圖像。例如,使用諸如Flot之類的內容來構建基於畫布的圖形,並在需要IE兼容性的情況下包括explorercanvas

0

我目前正在做同樣的事情,並正在研究粗糙做我的圖表的服務器端生成。

我粗暴地在我的控制器中生成圖像,並將圖像寫入我的公共圖像目錄,然後直接鏈接到我的視圖中的圖像。

也就是說,圖表是靜態圖像,我想要更動態的東西。

所以,我結束了使用Highcharts jQuery插件(http://www.highcharts.com/)在視圖端生成我的圖表。 (好得多!)

我只是讓我的控制器將我的數組數據傳遞給視圖,並讓圖表繪製客戶端,它更好,並且具有我的客戶端也可以使用Google的所有功能,而無需綁定到Google的API和Flash。

當然所有的意見! :)

0

我已經使用粗魯,它是非常慢,並消耗存儲器的一個lor,如果你不改變這樣的焦點這是一個好主意,使用粗魯與一些緩存,你可以做頁面緩存或片段緩存http://guides.rubyonrails.org/caching_with_rails.htm,但我會推薦你​​使用谷歌API,有一個簡化作業的寶石,http://rubygems.org/gems/googlecharts。如果你需要用戶下載圖表,我認爲用graphael或其他圖表製作圖表不是一個好主意。

0

感謝所有的投入。

我想我會使用谷歌圖表直的圖像源標籤或創業板。

再次感謝您的幫助。