Загрузка страницы

Файлы веб-страниц хранятся на microSD карте памяти в виде HTM и сопутствующих им CSS и JS файлов. Когда пользователь открывает страницу сайта AMS, браузер запрашивает эту страницу у сервера и серверный движок собирает её из отдельных файлов в соответствии с инструкциями, внедрёнными в веб-страницы в виде макросов и логики, заложенной в скетч Arduino.

Браузер загружает запрошенную веб-страницу и отображает её на экране пользователя. Здесь возможны два варианта:

  1. Все дополнительные файлы (CSS, JS) уже внедрены в тело HTM страницы и больше ничего загружать не требуется
  2. В HTM файле встречаются ссылки для загрузки дополнительных файлов CSS или JS. В этом случае браузер инициирует загрузку этих файлов и посылает новые запросы серверу, в ответ на которые сервер отдаёт дополнительные файлы

В результате, все нужные файлы загружаются и в работу вступают загруженные JS скрипты. Эти скрипты инициируют запросы к серверу нужных данных. Сервер обрабатывает эти запросы и выдаёт на них ответы, содержащие запрашиваемые данные.

Этот обмен происходит постоянно: запросы следуют каждые 1–2 секунды до тех пор, пока в окне браузера у пользователя открыт сайт AMS. Этот сценарий работы относится к т. н. динамическим и интерактивным страницам. Статические страницы просто загружают контент и не инициируют обмен данными с сервером.

Работа интерфейса

После получения данных от контроллера (каждые 1–2 секунды) JS скрипты помещают эти данные на отображаемую в браузере веб-страницу. В результате пользователь может в реальном времени наблюдать изменения параметров и графиков и нажимать на кнопки интерфейса, которые мгновенно изменяют нужные параметры внутри контроллера (благодаря беспрерывному круговому обмену данными).

Работа интерфейса

Весь процесс загрузки страницы и работы интерфейса, разбитый на этапы, выглядит так:

  1. Браузер запрашивает веб-страницу
  2. Сервер собирает её из частей и отдаёт
  3. Если необходимо, браузер запрашивает дополнительные файлы
  4. Браузер отображает страницу в соответствии с загруженными CSS и JS файлами
  5. Загруженные JS скрипты инициируют постоянные запросы к серверу
  6. Приходящие данные динамически помещаются на веб-страницы
  7. Круговой обмен данными длится до закрытия пользователем страницы в браузере