Вечный таймер
Приветствую! Приспособил себе скрипт таймера:
timer () function timer () { $.get('script.php', "time_energy_check="+user_id, function (data) { var data = jQuery.parseJSON(data); if (data.energy < 20) { var remain_bv = 5; function parseTime_bv(timestamp){ if (timestamp < 0) timestamp = 0; var hour = Math.floor(timestamp/60/60); var mins = Math.floor((timestamp - hour*60*60)/60); var secs = Math.floor(timestamp - hour*60*60 - mins*60); var left_hour = Math.floor( (timestamp - 24*60*60) / 60 / 60 ); if(String(mins).length > 1) $('span.afss_mins_bv').text(mins); else $('span.afss_mins_bv').text("0" + mins); if(String(secs).length > 1) $('span.afss_secs_bv').text(secs); else $('span.afss_secs_bv').text("0" + secs); } } }); }; Здесь он отсчитывает 5 секунд. Как, после завершения таймера (5 секунд) запустить его снова, чтобы он опять отбил свои 5 секунд, чтобы запускался снова и так до бесконечности? setInterval и setTimeout пробовал, вроде не получилось( |
Цитата:
|
Untropee,
Думаю тебе необходимо почитать про setInterval и setTimeout. Если ты будешь использовать их по уму, то тебе не придется столько кода писать для отсчета 5 секунд. |
Какой ты умный. Сейчас выставлено 5 секунд для примера, чтобы не ждать. Таймер будет в реальном действии каждой раз на 20 минут
|
Untropee,
пока непонятно как у вас таймер работает |
Таймер начинается с 10 строки. Таймер не мой, но работает прекрасно, в зависимости от выставленных секунд в переменную remain_bv.
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Ах да) Извиняюсь, забыл показать ежесекундный запуск скрипта) $(document).ready(function(){ setInterval(function(){ remain_bv = remain_bv - 1; parseTime_bv(remain_bv); if(remain_bv <= 0){ timer (); } }, 1000); }); |
Untropee,
$(document).ready(function(){ setInterval(function(){ remain_bv = remain_bv - 1; parseTime_bv(remain_bv); if(remain_bv <= 0){ *!* remain_bv = 5 */!* } }, 1000); }); |
Untropee,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ var remain_bv = 5; function parseTime_bv(timestamp){ if (timestamp < 0) timestamp = 0; var day = Math.floor( (timestamp/60/60) / 24); var hour = Math.floor(timestamp/60/60); var mins = Math.floor((timestamp - hour*60*60)/60); var secs = Math.floor(timestamp - hour*60*60 - mins*60); var left_hour = Math.floor( (timestamp - day*24*60*60) / 60 / 60 ); $('span.afss_day_bv').text(day); $('span.afss_hours_bv').text(left_hour); if(String(mins).length > 1) $('span.afss_mins_bv').text(mins); else $('span.afss_mins_bv').text("0" + mins); if(String(secs).length > 1) $('span.afss_secs_bv').text(secs); else $('span.afss_secs_bv').text("0" + secs); } setInterval(function(){ remain_bv = remain_bv - 1; parseTime_bv(remain_bv); if(remain_bv <= 0){ remain_bv = 5 } }, 1000); }); </script> </head> <body> <div> <span>Осталось: </span><span class="afss_day_bv">0</span> д. <span class="afss_hours_bv">00</span> час. <span class="afss_mins_bv">00</span> мин. <span class="afss_secs_bv">00 </span> сек. </div> <script> </script> </body> </html> |
Спасибо. Всё же просто(
|
Untropee,
убрал лишние строки 38 и 46 |
Часовой пояс GMT +3, время: 11:08. |