Учёт времени в курсе

Re: Учёт времени в курсе

от Alex Djachenko -
Количество ответов: 1
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
Чтобы говорить об учете времени пользователя, нужно понимать следующее:
Moodle "работает" только в тот момент, когда браузер пользователя делает запрос к серверу (через интернет). Только в этот момент запускается Moodle, генерирует страницу и выключается. В остальное время Moodle обслуживает других пользователей.
Остальное время пользователь работает со страницей, сформированной серверов. Это можно сравнить с газетой - редакция напечатала газету и читатель получил свой экземпляр. Он может ее читать, может не читать, может вертеть в руках. Может завернуть в нее селедку - редакция об этом никогда не узнает, если пользователь не отправит ей "письмо" - запросив "новую газету" или написав "свое мнение".

Поэтому на сервере хранятся только запросы пользователя, когда он запрашивает новую страницу. Что пользователь делает со своей страницей в остальное время сервер "не знает".
Поэтому никакого "полное время работы со страницей" не существует. Вместо этого выполняется подсчет: сумма интервалов времени, когда пользователь делал запрос хотя бы раз в 10 минут считаются продолжением его работы, а остальное время считается, что пользователь с сайтом не работал.
Можно пойти на трюк, и встроить в веб-страницу JavaScript, который будет раз в минуту делать запрос к серверу, чтобы показать, что страница все-еще открыта у данного пользователя. Мы в своем плагине так и поступили. Но у этого подхода есть два недостатка: увеличивается нагрузка на сервер (ощущается только на высоко-нагруженных системах) и пользователь должен оставаться подключенным к интернет (если пользователь живет в 1995-ом году и у него все-еще модемное соединение через телефонную линию, он вполне может отключиться после загрузки страницы и ваша система "не узнает", что он все-еще ее читает).