Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2011, 13:25   #1
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость Таймер обратного отсчета

PHP код:
<script type="text/javascript">
processTimer();

function processTimer(){
var limit = <?php echo"60"?>; // в секундах


  if (limit > 0) {
    setInterval(processTimer, 1000);
    limit--;
  } else {
    // здесь действия после завершения таймера
    alert("Время закончилось");
  }
 $("#timeout").html(limit);
 }
</script>
PHP код:
<span id="timeout"></span
Почему то таймер "застывает" на цифре 59 и дальше не хочет отсчитывать! Код правильный?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 09.01.2011, 13:43   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
<script type="text/javascript"> 

var limit = 60; 
setInterval(processTimer, 1000);

function processTimer(){ 
  if (limit > 0)  
    limit--; 
  else
    alert("Время закончилось"); 
 document.getElementById('timeout').innerHTML = limit; 
 } 
</script>
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 09.01.2011, 14:24   #3
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

PHP код:
var limit 60;// в секундах

setInterval(processTimer1000); 

function 
processTimer(){

  if (
limit 0) {
    
limit--;
  } else {
    
// здесь действия после завершения таймера
    
alert("Время закончилось");
  }
 $(
"#timeout").html(limit);
 } 
Как сделать чтобы переменная limit менялась динамически без перезагрузки страницы???

вот создал еще одну функцию, но чего то не получается
PHP код:
setInterval(timer1000); 

function 
timer() {
var 
time;
            $.
ajax({   
                
url"ajax/timer.php",   
                
cachefalse,   
                
success: function(html){   
                    
time html;   
                }   
            });   
            return 
time;

timer.php выдает число в секундах.
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 09.01.2011, 15:17   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

А зачем тут AJAX?
Верхний код ведь перезагрузки делает таймер
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 09.01.2011, 15:32   #5
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

Существует в БД таблица с полями : time и step

time - время time(); (например: 1294495145)
step - 1 или 2 (например: 1 - ходит игрок 1)

Играют 2 игрока друг против друга. Каждому дается на ход 60 секунд.

Получается код:

PHP код:
function timer() {
            $.
ajax({   
                
url"ajax/timer.php",   
                
cachefalse,   
                
success: function(html){   
                    
limit html;
                }   
            });
            return 
limit;
}

setInterval(timer1000); 
var 
limit timer(); // в секундах

setInterval(processTimer1000); 

function 
processTimer(){

  if (
limit 0) {
    
limit--;
  } else {
    
// здесь действия после завершения таймера
    
changeStep();   
}
 $(
"#timeout").html(limit);
 }
 
function 
changeStep() {
  
            $.
ajax({   
                
url"ajax/change_step.php",   
                
cachefalse,   
                
success: function(html){   
                }   
            });   
  } 
timer.php - выдает время в секундах на ход (60 сек)
change_step.php - меняет значение step в БД с 1 на 2 и наоборот + меняет время в БД на time + 60 сек
так же после каждого хода игрока значение в БД меняется, тобы было 60 сек на ход!

Вот такая очень замудренная конструкция!

С оптимизацией я наверно вообще в полной №?№*? окажусь...
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер обратного отсчёта HellkilleR Microsoft Office Excel 21 18.03.2015 12:49
Таймер обратного отсчета работает не так как надо.. нужно найти ошибку в коде... Человек_Борща Общие вопросы Delphi 10 13.04.2010 20:06
Таймер обратного отсчета Bilargo Помощь студентам 6 30.09.2009 17:02
Функция обратного вызова и таймер на WinApi flug Win Api 4 17.09.2009 16:06
Таймер обратного отсчета на С Raptor Помощь студентам 6 08.01.2008 01:11