![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| MystDeim |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 22.10.2007 Где: Россия->Юбилей ный Репутация: нет Всего: нет |
Сталкнулся с такой проблемой, создаю онлайн-тестирование: вопросы, и к ним по несколько вариантов ответов(радиокнопки) всё это дело надо пройти за определенное время. Яваскрипт отчитывает время и за некоторое время до конца надо нажать на кнопку, чтобы принялись ответы, на сервере уже пхп обрабатывает форму. Стал тестировать, оказалось, что когда одновременно челове 15 заходят, то ява скрипт может отставать от "реального времени" на 10-40 секунд(видимо хостер слабоват, в тестах много формул, mimetex долго их отрисовывает), и когда человек нажимает на кнопку, то время может уже кончится, но это ладно я просто немного увеличу время. Возможно ли сделать, что по окончанию временя яваскрипт сам отправлял POST-форму?
--------------------
Учебные материалы для студентов http://studlab.org |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
можно, повесить на setTimeout функцию в которой будет form.submit()
тут наверно, всё же надо на клиентской стороне строить часы. т.е. по событию onload включается таймер, ну и делает, то что там надо, ну а на сервере для ушлых парнишек проверку поставить, что он там таймер не подправил |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Оппа! 15 человек на сундук... с одного компьютера? время надо считать с помощью Date, а не отсчитывать секунды вручную setTimeout'ом -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| MystDeim |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 22.10.2007 Где: Россия->Юбилей ный Репутация: нет Всего: нет |
ksnk, с разных.
bars80080, Вот скрипт, который отсчитывает время:
То есть после, после этого" alert("Время вышло!");" ставлю" form.submit()", нужны параметры какие-нить? Еще редирект хорошо бы, нашел вот такую штуку: "self.location=''", как суда url засунуть? --------------------
Учебные материалы для студентов http://studlab.org |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
MystDeim, Постараюсь нарисовать "идеальную" тестировалку... Загружается красивая страничка с большой кнопкой "Начать тест". По нажатии на кнопку сервер посылает Ajax'ом список вопросов. Ajax в этом месте НУЖЕН для того, чтобы время отклика на начало теста было минимальным, чтобы подгрузка тяжелых фоновых картинок(читай - кривизна рук web-программиста) не сказалать на получаемых юзерами отметках... JS по получении ответа расставляет вопросы по нужным местам. К собственному стартовому времени приписывается нужное количество секунд и получаем время DateFinish. Каждую секунду вычисляем разницу DateFinish и Date. Ее и выводим как напоминание о дамокловом мече юзеру. Ежели юзер в этот момент начал лихорадочно искать в Гугле ответ, то машинка может и пропустить пару секунд в JavaScript'е, однако такой способ гарантирует, что время мы сосчитаем примерно правильно. Реальное время выполнения теста, естественно, нужно вычислять на сервере...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
если у тебя есть форма в которой пользователь отмечает нужные пункты, то у него есть поле action, куда можно вставить нужный адрес
а для отправки достаточно выполнить эту команду:
в этом случае страница сама перейдёт на указанный адрес а setTimeout тем и нехорош, что это счётчик и какой-нибудь процесс может удлинить время его выполнения лучше использовать даты, как указал ksnk |
||||
|
|||||
| MystDeim |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 22.10.2007 Где: Россия->Юбилей ный Репутация: нет Всего: нет |
Сработало!
Только в форма вот такая получается:
Это нормально что одновременно и имя формы есть и ид? --------------------
Учебные материалы для студентов http://studlab.org |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
нормально, если id и name нигде больше не повторяются
Это сообщение отредактировал(а) bars80080 - 1.4.2008, 09:18 |
|||
|
||||
| MystDeim |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 22.10.2007 Где: Россия->Юбилей ный Репутация: нет Всего: нет |
Всё ,спасибо всем, вопрос решен!
--------------------
Учебные материалы для студентов http://studlab.org |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |