2010-06-02 94 views
1

让我解释一下我想要做的事情。ajax/JS定时倒计时?

我想制作一个简单的盒子,以指定的间隔倒数。

例如,我想将它设置为从150开始,然后我想将它设置为每30秒下降15。

这可能与AJAX/Javascript?如果是这样,有人能指出我正确的方向吗?

真的很感谢这个脚本的任何帮助,谷歌已经几个小时了! :(

干杯

基兰

+0

只是一个方面说明,这是无关的AJAX(你只是倒计时,不向服务器发出请求)。 – GlenCrawford 2010-06-02 09:42:00

回答

1

看一看在setTimeoutsetInterval方法,它们允许你指定的毫秒数(1000毫秒=1秒)后执行的功能。请使用,调用是持续下降的数量,并将其写入到一个HTML元素给用户的功能可以看到它。

1

这不是测试,但我希望它表明你要走的路。

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

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

countdown(); 
+0

谢谢你,我会尝试做这个工作!我们需要的是一个简单的解决方案。 – kieran 2010-06-02 10:47:27

+0

你只需要在某个地方停下来,并且你应该使用setInterval来避免偏离。 – Alsciende 2010-06-02 14:39:50

0

您可以使用jQuery来做到这一点,看到http://keith-wood.name/countdown.html - >标签回调

+0

如果在项目中尚未使用JQuery,那么简单的倒计时会带来很多开销。 – 2010-06-02 09:41:26

+0

你是绝对正确的,这就是为什么我写“你可以使用”;-) 这个解决方案的优点和缺点是特殊的文章... – 2010-06-02 10:17:35

0

请记住,在我的浏览器30秒不一定等于在你的浏览器30秒。这取决于浏览器的工作量。 时间短暂较短,但可以长时间增加。时代将分开。如果两个访问者之间的时间不能相等(或几乎相等),那么这种简单的解决方案应该没问题。

我们曾经有一个问题在我们的一个项目中引入实时钟/倒计时。我们用javascript,ajax和PHP构建一个脚本用于时钟同步(服务器时间是timeserver)。

0

您应该使用的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/