Рендеринг изображений в браузере или временные изображения? - PullRequest
2 голосов
/ 30 марта 2010

Я пытаюсь создать страницу статистики, на которой будут показаны несколько данных и диаграмм.
Диаграммы должны быть изображениями, чтобы пользователь мог сохранять их / перетаскивать в свои личные отчеты.

Я использую Графики Графа для Ruby для создания диаграмм, но я не знаю лучшего способа отображения результатов в безопасности и защищенности.

Некоторые из моих идей / попыток:

  1. сохранить график в файл (jpg, png)? проблема: данные доступны всем (не имеют доступа к cron, чтобы удалить данные из времени во время)

  2. рендер в браузере (должен работать на IE)?

  3. Использовать javascript (Raphaël — JavaScript Library) или Google API и выводить отчет в формате PDF (нужен плагин или гем, верно)?

  4. использовать send_data? Я пытался выводить другой способ, кроме встроенного, потому что мне нужно показать другие данные, это возможно?

Спасибо за любую помощь.

Ответы [ 4 ]

1 голос
/ 30 марта 2010

Хотя это раздражает, вы всегда можете удалить старые записи как часть вашей процедуры генерации. Это действительно то, что вам нужно сделать, если у вас нет какой-либо фоновой работы, например, cron. Проверка на основе «времени модификации» файла обычно является наилучшим способом, но это также приводит к разрыву старых ссылок на изображения.

Подход на основе холста значительно лучше, чем сгенерированные сервером изображения. Например, используйте что-то вроде Flot для построения графиков на основе холста и включите explorercanvas , где это требуется для совместимости с IE.

0 голосов
/ 04 апреля 2010

Спасибо за все входы.

Я думаю, что буду использовать Google Charts прямо в теге источника изображения или через самоцвет.

Еще раз спасибо за помощь.

0 голосов
/ 31 марта 2010

Я использовал gruff, и он очень медленный и потребляет много памяти. Если вы не меняете chrats так сильно, то лучше использовать gruff с некоторым кэшированием, вы можете выполнять кэширование страниц или фрагментов http://guides.rubyonrails.org/caching_with_rails.htm, но я бы порекомендовал вам использовать Google API, есть жемчужина для упрощения работы, http://rubygems.org/gems/googlecharts. Если вам нужно, чтобы пользователи загружали диаграмму, я не думаю, что это хорошая идея использовать Graphael или другие, чтобы сделать диаграммы.

0 голосов
/ 30 марта 2010

В настоящее время я делаю то же самое, и искал ворчаний для создания моих диаграмм на стороне сервера.

Мне пришлось грубо сгенерировать изображение в моем контроллере и записать изображение в мой каталог общедоступных изображений, а затем просто связать изображение с моим видом.

Тем не менее, диаграммы были статическими изображениями, и я хотел что-то более динамичное.

Итак, я использовал плагин Highcharts jQuery (http://www.highcharts.com/) для генерации своих диаграмм со стороны вида. (Гораздо лучше!)

У меня просто есть контроллер, который передает данные моего массива в представление и позволяет диаграммам рисовать на стороне клиента, это намного лучше и обладает всеми функциями, которые мои клиенты тоже используют в Google без привязки к API и флеш-памяти Google. 1011 *

Все зависит от мнений, конечно! :)

...