Каково различие между обработчиком событий и функцией обратного вызова?
Обработчик событий - это обратный вызов из системы.
-121--977893- Пробовали ли вы получить доступ через $ _ SERVER
superglobal?
print $_SERVER["HTTP_REFERER"];
-121--3526123- Вообще говоря, «обратный вызов» находится под контролем процесса обнаружения.
Итак, вы говорите менеджеру GUI «вызвать myaction
при нажатии этой кнопки», а менеджеру GUI вызвать действие при нажатии кнопки.
Обработчики событий, с другой стороны, работают на одном удаленном шаге. Диспетчер GUI настроен на отправку сообщений обработчику событий. Менеджер событий сообщает, что нажатие кнопки выполняется программой myaction
. Когда кнопка нажата, менеджер GUI помещает сообщение в очередь обработчика событий и переходит к управлению GUI. Обработчик событий забирает сообщение из очереди, видит нажатие кнопки, запускает программу myaction
и переходит к обработке следующего события. Обычно программа myaction
выполняется как независимый поток или даже как отдельный процесс.
В то время как образец «обработчик событий» является более сложным, он намного надежнее и реже зависает при сбое действия. Это также обеспечивает более быстрый графический интерфейс пользователя.
Обратный вызов - это процедура, которую вы передаете в качестве аргумента другой процедуры. Процедура, получающая параметр, может вызвать его или поделиться им, поэтому некоторые другие процедуры в системе могут вызвать его.
Обработчик событий - это процедура, называемая событие. Это может быть обратный вызов.
Обработчик событий является типом обратного вызова. Это называется всякий раз, когда происходит событие. Термин обычно используется в терминах пользовательских интерфейсов, где события - это такие вещи, как перемещение мыши, нажав что-то и так далее.
Обратный вызов (из Википедии) : «Исполняемый код, который передан как аргумент для другого кода».
Обработчик событий (снова из Wikipedia) : «Подпрограмм асинхронного обратного вызова, который обрабатывает входы, полученные в программе».
, Что происходит так, как я всегда понял: обработчик событий является очень конкретным типом обратного вызова.
Я люблю, как все эти ответы отличаются друг от друга.
От этого я бы заключил, что из терминологии точки зрения события и обратные вызовы взаимозаменяются. То, что они имеют в виду на конкретном языке программирования или рамки и отличаются, потому что любая платформа имеет тенденцию выбирать свои любимые условия.
Обработчик событий является обратным вызовом из системы.