Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Радиокнопки 
V
    Опции темы
MystDeim
Дата 31.3.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



Сталкнулся с такой проблемой, создаю онлайн-тестирование: вопросы, и к ним по несколько вариантов ответов(радиокнопки) всё это дело надо пройти за определенное время. Яваскрипт отчитывает время и за некоторое время до конца  надо нажать на кнопку, чтобы принялись ответы, на сервере уже пхп обрабатывает форму. Стал тестировать, оказалось, что когда одновременно челове 15 заходят, то ява скрипт может отставать от "реального времени" на 10-40 секунд(видимо хостер слабоват, в тестах много формул, mimetex долго их отрисовывает), и когда человек нажимает на кнопку, то время может уже кончится, но это ладно я просто немного увеличу время. Возможно ли сделать, что по окончанию временя яваскрипт сам отправлял POST-форму?
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
bars80080
Дата 31.3.2008, 16:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



можно, повесить на setTimeout функцию в которой будет form.submit()

тут наверно, всё же надо на клиентской стороне строить часы. т.е. по событию onload включается таймер, ну и делает, то что там надо, ну а на сервере для ушлых парнишек проверку поставить, что он там таймер не подправил
PM MAIL WWW   Вверх
ksnk
Дата 31.3.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(MystDeim @  31.3.2008,  16:12 Найти цитируемый пост)
что когда одновременно челове 15 заходят, то ява скрипт может отставать от "реального времени" 

Оппа! 15 человек на сундук... с одного компьютера?  smile 

время надо считать с помощью Date, а не отсчитывать секунды вручную setTimeout'ом


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
MystDeim
Дата 31.3.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



ksnk, с разных.


bars80080, 
Вот скрипт, который отсчитывает время:
Код

function DownRepeat() { 
    csec2--;        
    if(csec2==-1) { 
        csec2=59; 
        cmin2--; 
    }       
    document.sw.disp2.value=Display(cmin2,csec2);   
    if((cmin2==0)&&(csec2==0)) 
        alert("Время вышло!");     
    else down=setTimeout("DownRepeat()",1000); 
}


То есть после, после этого" alert("Время вышло!");" ставлю" form.submit()", нужны параметры какие-нить?
Еще редирект хорошо бы, нашел вот такую штуку: "self.location=''", как суда url засунуть?
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
ksnk
Дата 31.3.2008, 17:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



MystDeim, Постараюсь нарисовать "идеальную" тестировалку... Загружается красивая страничка с большой кнопкой "Начать тест". По нажатии на кнопку сервер посылает Ajax'ом список вопросов. Ajax в этом месте НУЖЕН для того, чтобы время отклика на начало теста было минимальным, чтобы подгрузка тяжелых фоновых картинок(читай - кривизна рук web-программиста) не сказалать на получаемых юзерами отметках... JS по получении ответа расставляет вопросы по нужным местам.  К собственному стартовому времени приписывается нужное количество секунд и получаем время DateFinish. Каждую секунду вычисляем разницу DateFinish и Date. Ее и выводим как напоминание о дамокловом мече юзеру. Ежели юзер в этот момент начал лихорадочно искать в Гугле ответ, то машинка может и пропустить пару секунд в JavaScript'е, однако такой способ гарантирует, что время мы сосчитаем примерно правильно. Реальное время выполнения теста, естественно, нужно вычислять на сервере...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 31.3.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



если у тебя есть форма в которой пользователь отмечает нужные пункты, то у него есть поле action, куда можно вставить нужный адрес
Код
<form id="qwe" action="index1.php"></form>

а для отправки достаточно выполнить эту команду:
Код
document.getElementById('qwe').submit();

в этом случае страница сама перейдёт на указанный адрес

а setTimeout тем и нехорош, что это счётчик и какой-нибудь процесс может удлинить время его выполнения
лучше использовать даты, как указал ksnk
PM MAIL WWW   Вверх
MystDeim
Дата 31.3.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



Сработало!  smile 

Только в форма вот такая получается: 
Код

<form id="style_t" method="post" name="sw" action="<?=mainfile?>?variant=<?=$_GET['variant']?>&doc=result">


Это нормально что одновременно и имя формы есть и ид?
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
bars80080
Дата 1.4.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



нормально, если id и name нигде больше не повторяются

Это сообщение отредактировал(а) bars80080 - 1.4.2008, 09:18
PM MAIL WWW   Вверх
MystDeim
Дата 1.4.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



Всё ,спасибо всем, вопрос решен!
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.