133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
1

Запрет обновления страницы или

05.01.2016, 18:22. Показов 6412. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как на JS можно запретить обновление страницы или же не дать выполнить SQL запрос пока таймер работает или не был дан ответ.

А суть моей проблемы такая. Мне вывелся вопрос, Таймер начал тикать у пользователя 10 секунд к примеру что бы ответить.
Если обновить страницу то мне выведется уже следующий вопрос и таймер обновится (даже если ответ не был дан) и если человек не отвечает на вопрос а просто клацает на обновление страницы и каждый раз новый вопрос и отвечает на самые легкие (к примеру).

А мне нужно , началась сессия, вывелся вопрос и таймер стартанул.(таймер есть)
К примеру 10 секунд на ответ. Если он надумал обновить страницу он должен остаться тут же с этим же вопросом и таймер не должен обновиться и начать отсчет заново. А если таймер остановился то я уже прописал location и кыш вон.

Подробнее код могу положить сюда или есть уже в разделе по PHP
Остаться на текущем вапросе после обновления страницы

Можно даже просто сказать возможно ли такое на JS и я тогда приступлю к его изучению
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2016, 18:22
Ответы с готовыми решениями:

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

Поиск по БД без обновления страницы
Пожалуйста подскажите/скиньте пример как сделать поиск по базе данных по нажатию кнопки с выводом...

Форма без обновления страницы
Народ подскажите как сделать форму без обновления страниц, типа как на платниках (пример ...

Существует ли функция обновления страницы?
Мне нужно как-нибудь наложить условие на обновление страницы. Т.е. если пользователь нажал кнопку...

5
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
05.01.2016, 19:05 2
maruo, Пользователь отправляет сигнал о том, что он приступил к очередному заданию, а сервер засекает время начала и закидывает его в сессию или в бд. Как только пользователь(то есть браузер) отправил следующий сигнал, то на сервере к сохраненному времени прибавляется 10 сек и отнимается текущее дата-время. Если результат меньше или равен нулю, то пользователь опоздал.
0
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
05.01.2016, 19:13  [ТС] 3
Цитата Сообщение от Padimanskas Посмотреть сообщение
Пользователь отправляет сигнал о том, что он приступил к очередному заданию, а сервер засекает время начала и закидывает его в сессию или в бд. Как только пользователь(то есть браузер) отправил следующий сигнал, то на сервере к сохраненному времени прибавляется 10 сек и отнимается текущее дата-время. Если результат меньше или равен нулю, то пользователь опоздал.
Походу это не поему уровню знаний, для меня выглядит это сейчас чем то сверхъестественным
Придется переписать все заново и реализовать вывод вопросом помещая их в сессию
0
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
05.01.2016, 19:27 4
maruo, никакой магии тут нет

1. Браузер отправляет серверу запрос методом GET ( например, нажали на ссылку или отправили ajax запрос )
2. Сервер сохраняет у себя собственное время. Например, текущее Tue Jan 05 2016 12:00:00
3. Браузер отправляет серверу следующий запрос методом GET
4. Сервер берет сохраненное время, прибавляет 10 сек и отнимает текущее время
Например ( Tue Jan 05 2016 12:00:00 + 00:00:10 ) - Tue Jan 05 2016 12:05:00
5. Если ( ( Tue Jan 05 2016 12:00:00 + 00:00:10 ) - Tue Jan 05 2016 12:05:00 ) <= 0 значит пользователь не успел ответить
0
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
05.01.2016, 19:41  [ТС] 5
Это я так понимаю предотвратить обновление таймера?
А как же быть с тем что бы обновим страницу?Тогда получается таймер будет работать , а вопрос выведется другой.
0
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
05.01.2016, 20:46 6
Цитата Сообщение от maruo Посмотреть сообщение
А как же быть с тем что бы обновим страницу?Тогда получается таймер будет работать , а вопрос выведется другой.
Очевидно, что сервер должен следить за прогрессом пользователя, то есть он не допустит к следующему шагу если предыдущий не был завершен. А в GET запрос включаются параметры - ответ на вопрос или что-нибудь другое. Предположим, передаем действие "ответ на вопрос", вариант ответа "1": http://sever.com/test.php?action=answer&variant=1

в разметке это обычная ссылка
HTML5
1
<a href="test.php?action=answer&variant=1">Ответить на вопрос</a>
либо вот такой способ
HTML5
1
<a href="#" onclick="this.setAttribute('href', 'test.php?action=answer&variant=1');">Ответить на вопрос</a>
можно и на javascript
Javascript
1
2
3
anchor.onclick = function(){
    this.setAttribute('href', 'test.php?action=answer&variant=1');
};
Таймер на стороне клиента не нужен - пользователь сам инициирует проверки с помощью отправки след.запроса.
Конечно, его можно оставить, но только для декора. Так же, можно по завершении таймера автоматически обновить страницу
Javascript
1
location.href = '/test.php';
0
05.01.2016, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2016, 20:46
Помогаю со студенческими работами здесь

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

Запрет обновления страницы
&lt;header onclick=&quot;location.href='#'&quot;&gt;&lt;div class=&quot;ipsLayout_container ipsClearfix&quot;&gt; &lt;div...

описание без обновления страницы
Собственно проблема в следующем: в левой части человек выбирает пункт(заголовок записи), нажимает...

SetInterval() после обновления страницы
Здравствуйте! setInterval() после обновления страницы останавливается и запускается заново или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru