Автообновление содержимого веб-страницы - PullRequest
2 голосов
/ 24 августа 2011

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

Код для чтения датчиков - все это на С-коде. Какие есть варианты автоматической отправки данных датчика в веб-браузер или даже при непрерывном запросе данных?

Я рассмотрел следующую схему: Выделите разделяемую память в программе C для данных датчика, которые могут быть прочитаны серверным скриптом, таким как php. Затем получите ajax или что-то, запрашивающее данные о цикле или событии таймера.

Можно ли передавать данные клиенту, а не извлекать их?

У меня действительно нет никакого опыта работы с php / ajax, поэтому любые советы о том, как это реализовать, были бы великолепны.

Некоторые ключевые элементы, которые я не знаю:

-Как сделать тайминг в javascript

-Как получить некие структурированные данные в javascript на лету от запроса к серверу (например, php-страница, читающая данные датчика)

Ответы [ 4 ]

1 голос
/ 24 августа 2011

В вашем случае, если вы / ваша компания можете себе это позволить, я бы порекомендовал Wt .
Если ваше приложение написано на C, то C ++, вероятно, будет более знакомым, чем PHP или Javascript.
Он также может обрабатывать передачу данных на веб-страницу с помощью ajax pull или веб-сокетов.

1 голос
/ 24 августа 2011

Как вы говорите, для получения данных у вас есть два решения:

A) Получение данных с помощью ajax

Вы можете легко выполнить некоторые периодические задачи с помощью setInterval:

setInterval(callbackserver, PERIOD_MILLIS);

Если вы используете фреймворк, такой как jquery, существует множество плагинов для периодического обновления.

B) Отправка данных с помощью сервера js

Данные могут быть переданы в браузер вместо того, чтобы тянуть его.Для этого вам нужен сервер на основе протокола типа Comet .Проверьте этот проект для получения дополнительной информации

Как получить некие структурированные данные в javascript на лету из запроса к серверу

jsonКажется, это идеальное решение для структурированных данных в разных языках.

Я рассмотрел следующую схему: Выделите разделяемую память в программе C для данных датчика, которые могут быть прочитаны сценарием на стороне сервера, какphp

Почему бы просто не создать демона в C и не получить данные из него через PHP с помощью команды exec("mydeamon -data") для примера

1 голос
/ 24 августа 2011
  1. Обычно вы не можете отправить данные, используя HTTP.Вам придется опросить сервер.(Существуют альтернативы, которые могут выдвинуть, если вам интересно. См. Comet )
  2. . Вы можете использовать Ajax для динамической отправки запроса на сервер.См. этот урок для деталей.Это довольно просто.
  3. Вы должны периодически отправлять этот Ajax.Для этого вы можете использовать setInterval.

setTimeout ("yourAjaxRequestFunction", задержка);

0 голосов
/ 24 августа 2011
  • Ajax будет хорошим выбором для периодического извлечения данных. Это полностью на стороне клиента и очень легко начать. посмотрите несколько примеров в интернете.
  • А для серверной части вам нужно что-то, что берет данные из C. Совместное использование памяти между C и PHP было бы утомительно. Вы можете просто создать или обновить текстовый файл с помощью C. И поместите этот файл в домашнюю папку веб-сервера (возможно, apache)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...