2010-03-30 81 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

感谢所有的投入。

我想我会使用谷歌图表直的图像源标签或创业板。

再次感谢您的帮助。