Диаграмма реального времени (SVG) AJAX / Javascript / Jquery стандартный вывод Python я действительно не знаю себя

#python #ajax #svg #cgi #charts

#python #ajax #svg #cgi #Диаграммы

Вопрос:

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

ГЛАВНАЯ ЦЕЛЬ:

Заключается в создании линейной диаграммы реального времени, которая обновляется без перезагрузки веб-страницы на основе данных, поступающих из стандартного вывода. Таким образом, в основном это должен быть скрипт python, который получает каждое второе значение и на основе этих значений продолжает рисовать линию на линейном графике.

1) Ну, основные теги в моей голове прямо сейчас: Javascript / AJAX, cgi, веб-сервер python http, SVG (векторная графика).

Итак, по сути, самая большая проблема, которую я не понимаю, заключается в том, как непрерывно передавать значения стандартного вывода на веб-страницу. Должен ли я написать свой собственный веб-сервер python http, каким-то образом передавать значения и с помощью javascript или ajax SVG рисовать диаграмму.

Или написание веб-сервера http — глупая идея, и я могу как-то заставить его работать без этого?

Любые другие предложения или указание мне на некоторые учебные пособия или arcticles приветствуются. Потому что прямо сейчас я очень смущен, особенно в части непрерывной передачи значений на веб-страницу.

Заранее спасибо. Надеюсь, вы сможете указать мне куда-нибудь =)

Ответ №1:

Графики высокого уровня хороши для статических данных или для данных, обновляемых с максимальной скоростью 1000 мс. Попробуйте изменить частоту обновления до 100 мс — это выглядит дерьмово.

Я бы порекомендовал диаграммы Smoothie. Идеально подходит для вашего сценария.

Комментарии:

1. Спасибо, что указали на Smoothie — он идеально соответствует моим потребностям! И вы правы насчет highcharts — жаль, что я не прочитал ваш ответ 6 месяцев назад: p

Ответ №2:

Что вы хотите сделать, это использовать JavaScript для рендеринга диаграммы, например, с использованием такой библиотеки, как highcharts. Затем вы можете использовать AJAX для отправки HTTP-запроса обратно на веб-сервер для получения ваших данных.

В зависимости от ваших потребностей, вы могли бы просто продолжать периодически выполнять эти вызовы для получения новых данных. Или вы могли бы рассмотреть возможность использования более эффективных методов, таких как веб-сокеты, comet и т.д.

Комментарии:

1. Что касается самой серверной части, небольшой сервер python, созданный с помощью Twisted или какой-либо другой небольшой платформы, поможет вам предоставить нужные вам значения.

2. Спасибо. я думаю, comet — это именно то, что мне нужно. Даже не знал, что подобная вещь существует.

Ответ №3:

Также проверьте возможности обновления Flot в реальном времени:http://people.iola.dk/olau/flot/examples

Я использую базу данных в качестве буфера, поэтому нет необходимости в Comet или других push-методах.

Ответ №4:

Я бы использовал JavaScript для создания SVG-документа или манипулирования им с помощью AJAX-запросов, опрашивающих сервер и получающих данные обратно.