Обычно обработчики - это функции, которые 'обрабатывают' определенные события, для которых они зарегистрированы.
Документация, на которую вы ссылаетесь, касается веб-сервера. Веб-сервер получает запросы, например, от браузеров на URL-адреса, и возвращает ответ в зависимости от того, что было запрошено. Конкретный обработчик, о котором они говорят, принимает два аргумента:
-
request
, который приходит из браузера и содержит такую информацию, как URL, может быть файлы cookie, IP-адрес и т. Д. - A
response
объект. Обработчик должен взять информацию из request
, чтобы заполнить этот response
объект соответствующим образом. Он может также использовать другую информацию, такую как базы данных или файлы.
Например: веб-браузер запрашивает http://me.com/index.html
. Обработчик вызывается, ищет файл с именем index.html
в корневом каталоге. Если файл найден, он читается, добавляется к объекту response
, и обработчик завершается. Инфраструктура wgetsrv
сделает остальную часть работы и отправит ответ клиенту, который теперь увидит веб-сайт.
Существует много других типов обработчиков, например, для ввода данных пользователем. Зарегистрированный обработчик ввода с клавиатуры вызывается при каждом нажатии клавиши с набранной клавишей. Это позволяет программисту реагировать и отображать текст или вызывать ярлыки.
Обработчики часто используются для замены polling
. Polling
- это метод, при котором программа часто проверяет состояние чего-либо, чтобы реагировать на его изменение. Оставаясь с примером клавиатуры. Представьте, что вы управляете игроком в игре через двумерный мир с помощью клавиш со стрелками. Как программа узнает, в каком направлении вы хотите идти? Нужно проверить, какая (если есть) нажата клавиша со стрелкой. Для этого он может получить состояние клавиатуры, проверить, например, нажата ли сейчас клавиша со стрелкой вправо, а затем немного переместить плеер вправо, если это так. Но программа узнает об этом изменении только после того, как проверит клавиатуру. Поэтому, чтобы быть отзывчивым для игрока, он должен довольно часто проверять состояние клавиатуры (пару раз в секунду), что приводит к потере циклов ЦП, поскольку в большинстве случаев состояние действительно не изменилось.
Теперь поворачиваемсямодель вокруг, игра может спросить клавиатуру: Hey, when a key is pressed, call this function and tell it which keys are pressed
. Функция может затем соответствующим образом обновить положение игроков - но вызывается только тогда, когда состояние клавиатуры изменилось. Опрос подобен звонку пиццерию каждые пять минут: «Мой заказ готов к вывозу?»в отличие от того, чтобы позвонить ему один раз и сказать ему: «Перезвони мне, когда мой заказ будет готов». В последнем случае вы «зарегистрировали обработчик событий для пиццы» и сэкономили вам много времени.