Зачем это нужно?
Представь: у тебя IoT-система с кучей датчиков, и ты хочешь видеть их статус в реальном времени — зелёный (ждёт), красный (сработал), может, даже полупрозрачный круг при длительной активности. Перезагружать страницу каждые 5 секунд? Серьёзно? Нет уж, давай по-умному — через AJAX.
Шаг 1. Подготовка PHP-скрипта
Создаём файл get_sensors.php, который будет отдавать данные из базы в формате JSON:
query("SELECT id, status, last_seen FROM sensors ORDER BY id");
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
?>
Шаг 2. Фронтенд на чистом JavaScript
Вставляем на страницу блок для отображения и скрипт, который раз в 3 секунды опрашивает сервер:
Да, тут инлайн-стили — только чтобы показать идею. В реальном проекте, конечно, вынеси в CSS.
Плюсы и минусы подхода
| Плюсы | Минусы |
|---|---|
| Нет перезагрузки — пользователь не теряет контекст | Нагрузка на сервер при частых запросах |
| Простота реализации на базовом уровне | Нет «настоящего» реального времени (поллинг) |
| Работает даже без интернета, если сервер локальный (например, на Raspberry Pi) | Нужно аккуратно обрабатывать ошибки сети |
Что дальше?
Если хочется настоящего реального времени — смотри в сторону WebSocket или Server-Sent Events (SSE). Но для 90% домашних IoT-проектов (включая мою сеть из 100 PIR-датчиков) обычного AJAX-поллинга более чем достаточно.
А если ты, как и я, предпочитаешь всё держать у себя на сервере — отлично, этот подход полностью автономен и не зависит от облаков.
Комментарии
Пока нет комментариев. Будьте первым!