Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите, пожалуйста, со скриптом. По-любительски.
 
 автор: DJ Paltus   (24.05.2005 в 15:50)   письмо автору
 
 

Появилась идея сделать небольшую страничку с викторинкой, нужен скрипт, который перезагружал бы страницу по тайм-ауту...

Примерно так: юзер приходит, ему задается вопрос, начинает тикать время, по окончании которого дается правильный ответ и ссылка на следующий вопрос. А если он быстро отвечает правильно сам, то время должно вернуться взад, для постановки следующего вопроса.

Php - не проблема (теперь и во многом благодаря данному форуму), а вот Яву с нуля я как-то пока не готов.

   
 
 автор: glsv (Дизайнер)   (24.05.2005 в 17:06)   письмо автору
 
   для: DJ Paltus   (24.05.2005 в 15:50)
 

Java тоже не обязательна. Достаточно с помощью HTML-кода передать заголовок, перегружающий страницу.

<HTML><HEAD>
   <META HTTP-EQUIV='Refresh' CONTENT='5; URL=page.php '>
</HEAD></HTML>

Здесь, через 5 секунд произойдет редирект на страницу page.php. Можно подставить имя текущей страницы.

   
 
 автор: DJ Paltus   (24.05.2005 в 17:54)   письмо автору
 
   для: glsv (Дизайнер)   (24.05.2005 в 17:06)
 

это-то конечно хорошо, но игроку все же надо время показать ))
кстати,
1) этот рефреш могет запросто отбиваться настройками какого-нибудь приблудного файрвола (что они делают почти всегда), антиспама или чего еще,
2) в какой момент начинается измерение указанного времени? В момент подгрузки заголовка или окончания загрузки паги?

   
 
 автор: glsv (Дизайнер)   (24.05.2005 в 21:53)   письмо автору
 
   для: DJ Paltus   (24.05.2005 в 17:54)
 

>1) этот рефреш могет запросто отбиваться настройками какого-нибудь приблудного файрвола
Я таких в реальной ситуации не встречал. Запретить можно все. Даже срабатывание мета-тегов. Но если принять такую ситуацию, то сделать решительно ничего нельзя. Если уж мета-теги отключены, то JavaScript и подавно работать не будет :)


> в какой момент начинается измерение указанного времени?
Точно не скажу – нужен эксперимент. Думаю, что в момент загрузки заголовка.

   
 
 автор: DJ Paltus   (24.05.2005 в 23:24)   письмо автору
 
   для: glsv (Дизайнер)   (24.05.2005 в 21:53)
 

Ладно, я тогда послезавтра на работе это дело погоняю. В принципе, минус только один остается - игрок не видит оставшегося времени... Хотя тут можно ему по тупому впаять флэш-часики и синхронизировать их ))
Тема не закрывается, полагаю.

   
 
 автор: DJ Paltus   (25.05.2005 в 02:20)   письмо автору
 
   для: glsv (Дизайнер)   (24.05.2005 в 21:53)
 

Попробовал! Сразу вывод: если игрок нажимает ESC, то перехода страницы не происходит.
А значит, он получает неограниченное время на размышление.
Скрипт нужен... или выкручиваться по-страшному.

   
 
 автор: glsv (Дизайнер)   (25.05.2005 в 05:22)   письмо автору
 
   для: DJ Paltus   (25.05.2005 в 02:20)
 

> Сразу вывод: если игрок нажимает ESC
Хм... у вас получилось прервать выполнение редиректа по эскейпу? У меня не вышло. На эскейп не реагирует. Хотя, мета-теги перестают работать если нажать кнопку "рефреш".
Кстати, по эскейпу и любой JavaScript прекратит выполнение.
Ни с помощью HTML, ни с помощью JavaScript не получится так контролировать посетителя. Он всегда сможет обмануть выполняемые по этим технологиям web-приложения. На своей машине он царь и баг, а не вы как web-разработчик.

Возможно, здесь может помочь полноценная Java.

   
 
 автор: DJ Paltus   (25.05.2005 в 14:46)   письмо автору
 
   для: glsv (Дизайнер)   (25.05.2005 в 05:22)
 

Можно по нажатию эскейпа давать алерт "Не трогай Эскейп" )))

   
 
 автор: DJ Paltus   (26.05.2005 в 16:07)   письмо автору
 
   для: glsv (Дизайнер)   (25.05.2005 в 05:22)
 

В общем, вот что получается:

http://chgk.d-source.com.ru/play/play.php

Полностью на пхп, а так хотелось на яве... Забавная фича - при нажатии кнопки "подсказка" страница по идее перезагружается, но время до перезагрузки динамически уменьшается. То есть, с погрешностью +-1-2 секунды пользователь получает на решение вопроса строгое время. Вспотел, пока эту возможность ввинтил.

   
 
 автор: glsv (Дизайнер)   (27.05.2005 в 10:27)   письмо автору
 
   для: DJ Paltus   (26.05.2005 в 16:07)
 

Можно кстати, еще и на сервере время перепроверять. Например в сессиях хранить время обращения к странице и сравнивать его со временем ответа. Тогда "морковкина заговения" даже с ESC уже не выйдет. Думать то можно будет, но ответ уже не будет принят.

   
 
 автор: DJ Paltus   (27.05.2005 в 14:45)   письмо автору
 
   для: glsv (Дизайнер)   (27.05.2005 в 10:27)
 

Да, я это уже делаю. Но на самом деле, JS был бы более уместен и демократичен к пользователю, так как при модемном соединении есть большая разница между серверным временем, которое регистрируется в php и пользовательским системным, которое берет JS. :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования