Как работает таймер викторины w3schools и как его создать? - PullRequest
2 голосов
/ 06 января 2012

Я программист на JavaScript, который планирует создать таймер ... этот таймер должен останавливаться только тогда, когда пользователь завершил определенный процесс.

Я построил базовый таймер, который прекрасно работает, но зависает для функции javascript: alert("stop");. Остановка цитаты не так важна, но каким-то образом таймер останавливается, когда я ввожу этот скрипт в адресную строку моего браузера, и когда я нажимаю «ОК» в диалоговом окне, таймер переходит с того места, где он остановился.

Мне сказали, что это невозможно предотвратить, но когда я зашел на страницу викторины w3schools и взял тест, я попробовал эту функцию оповещения на их веб-сайте и перезагрузил страницу, таймер отображает правильную продолжительность времени. Я просто хочу знать, любой из вас знает о методике, которую использует w3schools для таймера, и может поделиться со мной, чтобы я мог использовать ее для своего таймера.

Я просто хочу знать, работает ли этот таймер внешне, находится ли скрипт на странице, на которой отображается таймер, или же скрипт таймера хранится во внешнем файле, и я заметил, что таймер в w3schools не отображает продолжительность на дисплее в реальном времени, но показывает только правильное время, когда я перехожу к следующему ответу или обновляю страницу, так что, если вы могли бы предоставить решение для этого, чтобы отобразить его в режиме реального времени без необходимости обновлять страницу, которую я хотел бы это.

Ответы [ 2 ]

1 голос
/ 06 января 2012

Если вы посмотрите на такой инструмент, как Chrome Developer Tools, вы увидите, что время начала отправляется вместе с каждым переходом к следующему вопросу, используя POST:

Form Data
    starttime: 1/6/2012 7:02:31 AM
    answers: 00000000000000000000
    qnumber: 2

Серверинтерпретирует эти данные и, скорее всего, делает что-то вроде (now - starttime).toMinutes() (псевдокод) для отображения затраченного времени.Это также работает при перезагрузке страницы, потому что время не останавливается - (now - starttime), очевидно, всегда будет давать правильный результат, когда страница строится на сервере.

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

0 голосов
/ 06 января 2012

Я бы предположил, что если он не обновляется в реальном времени, то это, вероятно, не таймер, а, скорее, просто хранилище времени, которое вы начали, а затем время от времени выполняются некоторые вычисления.

...