Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чем лучше рисовать график в реальном времени?
 
 автор: Киналь   (28.01.2012 в 21:07)   письмо автору
 
 

Попросили тут меня подумать над одной задачей. Решение я придумал, но уж больно оно топорное и некрасивое. Так что прошу совета, как можно поступить иначе.

Задача такая.
Есть много-много датчиков (в пределе 1024 штуки), данные с которых пишутся в базу MySQL. Как они там читаются-пишутся — неважно, главное, данные там есть. Записи обновляются примерно раз в пять-десять минут, по-разному для разных датчиков (то есть, условно говоря, 200 датчиков раз в 5 минут, 300 датчиков раз в 10 минут, остальные раз в 15 минут). База стоит на сервере, сервер подключён к интернету.
И надо, чтобы по http можно было зайти на этот сервер и посмотреть красивые графики, как там ползут показания этих датчиков. То есть на том же сервере ставится Apache, и делается, строго говоря, сайт с одной страничкой, на которой, скажем, будет окошко для ввода номера датчика и кнопка «Показать график». И чтобы обязательно пользователь видел, как меняются показания.

Я прикинул, как это можно реализовать на чистых PHP/HTML — ограничить число одновременно просматриваемых графиков, скажем, десятью, и тупо обновлять их раз в полминуты или минуту; думаю, это не будет большой нагрузкой. Но как-то это неспортивно. Как можно решить задачу красивее, грамотнее? Может, тут уже нужен Flash? Или обязательно модный Ajax?)

  Ответить  
 
 автор: cheops   (28.01.2012 в 21:21)   письмо автору
 
   для: Киналь   (28.01.2012 в 21:07)
 

Flash - тот же JavaScrip - вид с боку, если можете отрисовать без него, лучше так и поступить - править будет проще, не нужны будут исходные коды. AJAX будет перерисовывать только сами графики, не затрагивая то, что вокруг них... будет выглядеть плавно, так как картинку можно не выводить, пока она не загрузится... с другой стороны, если вокруг графиков ничего нет и около графиков не будет постоянно кто-то сидеть, выгоды от этого не очень много... Вот если вдруг кто-то будет напряженно всматриваться в графики часами, тогда да, стоит задуматься о том, чтобы не мерцало и не перезагружалось (вплоть до Flash, хотя лучше AJAX), а то обыкатесь, когда вас как разработчика в течение этих часов будут поминать.

  Ответить  
 
 автор: Киналь   (28.01.2012 в 21:30)   письмо автору
 
   для: cheops   (28.01.2012 в 21:21)
 

То есть если не будет «напряжённого взгляда в монитор», то такая схема — с обновляющимися картинками, — вполне работоспособна?

  Ответить  
 
 автор: cheops   (28.01.2012 в 21:54)   письмо автору
 
   для: Киналь   (28.01.2012 в 21:30)
 

А почему нет... можно даже не обновлять их, пусть ручками обновляют - в конце концов может там распечатать нужно или еще чего-то, а у вас страница перезагружается (у нас в панели управления хостинга долгое время так и было с ручной перезагрузкой). Если случится внештатная ситуация, я думаю никто около графиков за монитором сидеть не будет.

  Ответить  
 
 автор: Киналь   (28.01.2012 в 22:14)   письмо автору
 
   для: cheops   (28.01.2012 в 21:54)
 

На случай «ещё чего» можно сделать таймер «до перезагрузки страницы осталось...». Главное, не большой и не красный) Ну да это уже детали.

Спасибо за ответ!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования