|
Отдельный процесс
|
|||
---|---|---|---|
#18+
Добрый день! Разрабатываю тестирование студента. Дается ему определенное время, на клиенте с временем все решил(в базе хранится время начала тестирование, в OnPreHttp вычисляется оставшееся время, запускаю таймер на клиенте с вычисленным временем, если время заканчивается или студент нажал закончить, с клиента делается запрос серверу о time's left, в базу сохраняется конечное время, вычисляется баллы студента), но если пользователь запустил тест и вышел, не вернулся, сервер должен сам при time's left, зафиксировать время, вычислить баллы. Ответы студента во время тестирования на сервере сохраняются(angular), на счет них не переживайте ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 07:36 |
|
Отдельный процесс
|
|||
---|---|---|---|
#18+
Подумывал о веб приложениях в кашэ, но смог ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 07:38 |
|
Отдельный процесс
|
|||
---|---|---|---|
#18+
Решение задачи вообще лежит не в области Каше. Баллы зависят от времени? Если нет, вычисляйте их при каждом сохранении результата. Добавьте поле типа "флаг нормального завершения", а время завершения записывайте при каждом обращении с клиента. Сделайте пинг с клиента, который периодически будет сообщать серверу о том, что клиент активен. Можно сделать вычисление баллов по запросу. На крайний случай, если вам при окончании тестирования нужно будет куда-то что-то отослать, можете сделать задачу планировщика, которая с некоторым интервалом будет проверять базу и делать определенные действия. >запускаю таймер на клиенте с вычисленным временем А вот этого я бы не стал делать. Доверять какие-либо вычисления на клиенте нехорошо. А если на клиенте время ошибочное? А если во время тестирования время изменят? А если другой часовой пояс? Максимум что можно сделать - это просто информационный таймер. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 08:17 |
|
Отдельный процесс
|
|||
---|---|---|---|
#18+
nurlybekovntв OnPreHttp вычисляется оставшееся время, запускаю таймер на клиенте с вычисленным временем, если время заканчивается или студент нажал закончить, с клиента делается запрос серверу о time's left А за дверью стоят ушлые старшекурсники и по секрету рассказывают про кнопку F5, по которой страница снова загружается и отсчет времени начинается снова. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 13:32 |
|
Отдельный процесс
|
|||
---|---|---|---|
#18+
ну я, Ради этого я и хранится время начала экзамена, чтобы даже если он откроет в другом браузере, время продолжается, исходя из записи в базе вычисляется время. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 17:48 |
|
Отдельный процесс
|
|||
---|---|---|---|
#18+
Блок А.Н., Да, таймер просто информационный на самом деле все идет по времени сервера, при каждом обращении к серверу производится проверка окончании времени на тестирование. Но если клиент перестанет обращаться, то тест никогда не закончится фактически, поле "FinishTime" останется пустым, оценка за тестирование не проставится, а хотелось бы чтобы сервер при left time сам автоматически закончил тест, а не исходя от обращения клиента. Баллы вычисляются за правильные ответы, а ответ студента до того момента, как закончить тест уже будут храниться в базе, потому что при каждой нажатии на радиокнопку делается post запрос с помощью ангуляра. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2017, 17:54 |
|
|
start [/forum/topic.php?fid=39&fpage=7&tid=1556338]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 286ms |
total: | 412ms |
0 / 0 |