ajax/JS синхронизировал обратный отсчет?

Позвольте мне объяснить, что я пытаюсь сделать.

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

Например, я хотел бы установить его для запуска в 150, и затем я хочу установить его для отбрасывания на 15 каждые 30 секунд.

Действительно ли это возможно с AJAX/Javascript? Если так, кто-то мог указать на меня в правильном направлении?

Действительно ценил бы любую справку на этом сценарии, поиске с помощью Google в течение многих часов теперь!:(

Удачи

Kieran

1
задан GlenCrawford 2 June 2010 в 09:42
поделиться

5 ответов

Обратите внимание на методы setTimeout или setInterval , они позволяют выполнять функцию через указанное количество миллисекунд (1000 мс = 1 секунда). Используйте это, чтобы вызвать функцию, которая постоянно отбрасывает число и записывает его в элемент HTML, чтобы пользователь мог его видеть.

1
ответ дан 3 September 2019 в 00:07
поделиться

это не тестировалось, но я надеюсь, что это укажет вам путь.

var start = 150;
var drop = 15;
var interval = 30;

function countdown(){
    document.getElementById('mybox').innerHTML = start;
    start-=drop;
    window.setTimeout("countdown",interval*1000);
}

countdown();
1
ответ дан 3 September 2019 в 00:07
поделиться

Для этого вы можете использовать jQuery, см. http://keith-wood.name/countdown.html -> вкладка Обратные вызовы

0
ответ дан 3 September 2019 в 00:07
поделиться

Имейте в виду, что 30 секунд в моем браузере не обязательно равны 30 секундам в вашем браузере. Это зависит от загруженности браузера. Разница во времени небольшая в течение короткого времени, но может увеличиваться в течение длительного времени. Времена разойдутся. Если время между двумя посетителями не должно быть равным (или почти равным), то такое простое решение должно подойти.

Однажды у нас возникла проблема с внедрением живых часов / обратного отсчета в одном из наших проектов. Мы строим скрипт с javascript, ajax и PHP для синхронизации часов (время сервера было сервером времени).

0
ответ дан 3 September 2019 в 00:07
поделиться

Вы должны использовать setInterval / clearInterval, который создан для такого рода задач:

function cooldown(element, start, stop, step, delay) {
    var current = start;
    element.innerHTML = current;
    var timer = setInterval(function () {
        current -= step;
        if(current < stop) current=stop;
        element.innerHTML = current;
        if(current == stop) clearInterval(timer);
    }, delay*1000);
}

Продемонстрировано здесь: http://jsfiddle.net/PCMHn/

0
ответ дан 3 September 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: