У меня есть веб-сервер, который создает вопросы для студентов определенного предмета. Веб-серверу необходимо отслеживать, сколько времени каждый студент потратил на определенный набор вопросов.Onunload, onbeforeunload - запрошенное руководство
Веб-страницы имеют кнопку «Готово», которая при нажатии вызывает отправку статистики на сервер.
Однако я также хочу, чтобы веб-браузер отправлял статистику, если ученик перемещается в сторону от страницы или закрывает окно браузера, не нажимая «Готово».
Для этой цели я планировал иметь «onunload» или «onbeforeunload» отправлять запрос Ajax на сервер с соответствующей информацией. Но, по-видимому, разные браузеры не полностью поддерживают эти события, а также существуют ограничения на то, что можно сделать в обработчиках событий. И, конечно, я не хочу, чтобы просмотр зависал, если связь с сервером терпит неудачу.
Итак, мне нужен совет по наилучшему способу сделать это.
Я использовал onbeforeunload для отправки запросов AJAX по этой причине, и он работал в основных браузерах. Я не могу дать вам окончательный список того, что я тестировал, но вы должны знать, что это было сделано раньше. – RichieHindle
Я использовал программное обеспечение, которое в ретроспективе, возможно, имело эту функцию. Мое воспоминание о том, что существуют ограничения на использование браузеров. Это нечестно, но я был бы склонен идти с линией, которая в основном говорила. «Требуются браузеры, совместимые с стандартом. Для завершения этого теста вы должны использовать браузер xx, yy или zz. Другие браузеры не могут гарантировать конфиденциальность ваших ответов и, как таковые, не поддерживаются» – enhzflep
Вы не можете реализовать что-то, что не поддерживается браузеров (AJAX при разгрузке). Вместо отправки данных при выгрузке вам следует периодически отправлять данные на сервер. Затем, даже если вы закрываете браузер с помощью диспетчера задач или если он отключает (сетевой) кабель, у вас все еще есть некоторые данные. –