2010-03-30 5 views
2

J'essaye de faire une page de statistiques où il montrera plusieurs données et diagrammes.
Les graphiques doivent être des images afin que l'utilisateur puisse les enregistrer/glisser-déposer dans ses rapports personnels. J'utilise Gruff Graphs pour Ruby pour produire les graphiques mais je ne connais pas la meilleure façon d'afficher les résultats en toute sécurité et protégés.Rendu d'image sur le navigateur ou les images temporaires?

Certains de mes idées/essais sont:

  1. Enregistrez le graphique dans un fichier (jpg, png)? problème: les données sont disponibles à tout le monde (ne pas avoir accès à Cron, pour supprimer des données de temps en temps)

  2. rendu dans le navigateur (doit travailler sur IE)?

  3. Utiliser javascript (bibliothèque Raphaël-JavaScript) ou Google API et générer un rapport PDF (besoin d'un plugin ou d'une gemme, à droite)?

  4. Utilisez send_data? J'ai essayé de sortir autrement qu'en ligne, parce que j'ai besoin de montrer d'autres données, est-ce possible?

Merci pour toute aide.

Répondre

1

Bien que ce soit ennuyeux, vous pouvez toujours supprimer les anciennes entrées dans le cadre de votre procédure de génération. C'est vraiment seulement quelque chose que vous devez faire si vous n'avez pas une fonction de travail en arrière-plan d'une sorte comme cron. La vérification basée sur le fichier "temps de modification" est généralement la meilleure façon de procéder, mais cela a aussi pour effet de rompre les anciens liens vers les images.

Une approche basée sur le canevas est nettement meilleure que les images générées par le serveur. Par exemple, en utilisant quelque chose comme Flot pour construire des graphiques à base de toile et d'inclure explorercanvas où requis pour la compatibilité IE.

0

Je suis en train de faire la même chose, et je cherchais à faire bourru pour faire la génération de mes cartes sur le serveur. J'ai eu bourru générer une image dans mon contrôleur et écrire l'image dans mon répertoire d'images publiques, puis simplement lier à l'image de ma vue.

Cela dit, les graphiques étaient des images statiques, et je voulais quelque chose de plus dynamique. Donc, j'ai fini par utiliser le plugin jcharger Highcharts (http://www.highcharts.com/) pour générer mes graphiques du côté de la vue. (Beaucoup mieux!)

J'ai juste mon contrôleur transmettre mes données de tableau à la vue et laisser les graphiques dessiner côté client, c'est beaucoup mieux et a toutes les fonctionnalités que mes clients sont utilisés aussi par Google sans être lié à API de Google et flash.

Tout un question d'opinion bien sûr! :)

0

J'ai utilisé beaucoup de choses et il est vraiment lent et consomme beaucoup de memmory, Si vous ne changez pas tellement les chrats, c'est une bonne idée d'utiliser le bourrage avec un peu de cache, fragments de mise en cache http://guides.rubyonrails.org/caching_with_rails.htm, mais je vous recommande d'utiliser API google, il y a une gemme pour simplifier le travail, http://rubygems.org/gems/googlecharts.Si vous avez besoin que les utilisateurs téléchargent le tableau, je ne pense pas que ce soit une bonne idée d'utiliser graphael ou d'autres pour faire des graphiques.

0

Merci pour toutes les entrées. Je pense que je vais utiliser Google Maps directement dans la balise source de l'image ou via la gemme.

Merci encore pour toute l'aide.

Questions connexes