![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:06
|
![Аватар для condpattern](https://javascript.ru/forum/image.php?u=36371&dateline=1406703174) |
Интересующийся
|
|
Регистрация: 30.07.2014
Сообщений: 17
|
|
Скрипт ссылки-таймера
Приветствую.
Подскажите, возможно ли средствами JavaScript создать ссылку/ кнопку, которую бы возможно было нажимать раз в сутки?
Пример,
--я нажал на ссылку
--включился обратный таймер 24 часа
--я зашел через час и вижу таймер 22:59:48
--зашел через сутки- все ок
--снова нажал на ссылку
--включился таймер..
Как я понимаю без куки не обойтись? JavaScript же работает с Cookie или только PHP? Простите, не знаком совершенно с JS отсюда и глупые вопросы.
Спрашиваю, чтобы более корректно описать заказ здесь на форуме в разделе работа/или на том же фрилансере. Возможно, кто-то готов сделать сие? Сколько это будет стоить?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:20
|
Профессор
|
|
Регистрация: 11.02.2014
Сообщений: 303
|
|
Таймер — JS, остальное — PHP.
Главное здесь, чтобы действие, которое совершается при нажатии на кнопку, нельзя было сделать напрямую (например, отправка и выполнение запроса на сервере).
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:23
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,664
|
|
WorM32, а как вы идентифицировать пользователя на php собрались?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:33
|
![Аватар для condpattern](https://javascript.ru/forum/image.php?u=36371&dateline=1406703174) |
Интересующийся
|
|
Регистрация: 30.07.2014
Сообщений: 17
|
|
Сообщение от Rise
|
WorM32, а как вы идентифицировать пользователя на php собрались?
|
Как вариант IP, но тут у большинства динамический, вводить отдельно авторизацию не лучший вариант.
Полагаю имелось ввиду добавить какую-нибудь переменную в куки с помощью PHP, например дату нажатия и относительно этой даты плясать. Но я нашел такую штуку: http://learn.javascript.ru/cookie Мб проще с помощью нее?
Например, при клике на нужный нам id можно вносить в куки с помощью JS текущую дату на сервере/ компьютере (полагаю первое без PHP не вариант) и далее относительно нее
--или выводить таймер сколько осталось до прошествия 24 часов
--или саму ссылку.
По идее такое же возможно в JS? Я просто никогда не сталкивался с применением cookie в JS и вообще работает ли JS c ними, интуиция подсказывает, что работает.
Последний раз редактировалось condpattern, 05.08.2014 в 13:36.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:39
|
![Аватар для condpattern](https://javascript.ru/forum/image.php?u=36371&dateline=1406703174) |
Интересующийся
|
|
Регистрация: 30.07.2014
Сообщений: 17
|
|
Мне нужно что-то типа этого http://jsfiddle.net/rATW7/ только чтобы было 24 часа и таймер не сбрасывался при обновлении страницы. Вот.
Возможно, кто-то еще поделиться опытом? Больше всего интересует как сделать, чтобы таймер не сбрасывался при обновлении странички.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 13:41
|
Профессор
|
|
Регистрация: 11.02.2014
Сообщений: 303
|
|
Сообщение от Rise
|
WorM32, а как вы идентифицировать пользователя на php собрались?
|
![Blink](https://javascript.ru/forum/images/smilies/blink.gif) Cookie/Session
condpattern,
Чтобы не сбрасывался таймер - время начало старта таймера нужно хранить на сервере.
При клике по кнопке должен отправится запрос на сервер, по результату которого, время старта будет сохранено на сервере. Сохранение начало старта на клиенте это ненадежно. При обновлении страницы, клиент должен получить от сервера оставшееся время и запустить обратный отсчет.
Последний раз редактировалось WorM32, 05.08.2014 в 13:50.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 14:09
|
![Аватар для condpattern](https://javascript.ru/forum/image.php?u=36371&dateline=1406703174) |
Интересующийся
|
|
Регистрация: 30.07.2014
Сообщений: 17
|
|
Сообщение от WorM32
|
Cookie/Session
condpattern,
Чтобы не сбрасывался таймер - время начало старта таймера нужно хранить на сервере.
При клике по кнопке должен отправится запрос на сервер, по результату которого, время старта будет сохранено на сервере. Сохранение начало старта на клиенте это ненадежно. При обновлении страницы, клиент должен получить от сервера оставшееся время и запустить обратный отсчет.
|
Я понимаю, что как только клиент почистит историю все обнулится, но в моем случае это не принципиально. В приоритете скорее обойтись без сервера и БД.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 14:16
|
Профессор
|
|
Регистрация: 11.02.2014
Сообщений: 303
|
|
condpattern,
Сохраняйте тогда время клика в куки или localStorage. При загрузке страницы берите оттуда, вычитайте из текущего времени и на разницу, если требуется, запускайте таймер.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 14:41
|
![Аватар для condpattern](https://javascript.ru/forum/image.php?u=36371&dateline=1406703174) |
Интересующийся
|
|
Регистрация: 30.07.2014
Сообщений: 17
|
|
Сообщение от WorM32
|
condpattern,
Сохраняйте тогда время клика в куки или localStorage. При загрузке страницы берите оттуда, вычитайте из текущего времени и на разницу, если требуется, запускайте таймер.
|
Итого мне нужно что-то типа такого:
--при нажатии на ссылку
заносим текущую дату с компа в куки/ local storage в переменную clicker на 24 часа и переходим по ссылке
--при каждой загрузке страницы
Что-то типа onload
смотрим переменную clicker
если она есть, то
считаем сколько она будет жить:
таймер= текущая дата минус дата в переменной clicker
в нужнмо спане отображаем таймер обратного отсчета в зависимости от значения таймер
если нет (else), то
в нашем спане просто отображаем ссылку
Собственно вопрос. Кто это может перевести в язык Javascript и сколько это будет стоить?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.08.2014, 15:18
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,664
|
|
condpattern, лучше timestamp сервера использовать, а не клиента, но тогда уже без php не обойтись.
|
|
|
|