递归地汇总一个数字并显示它

时间:2016-07-05 13:53:29

标签: javascript php jquery ajax

我搜索了这个问题的解决方案,但无法找到解决方案。如果有人能指出我正确的方向,那就太好了。

好的,假设有一个数字: -

0.001

我想要做的是,添加 0.001(相同的数字)一次又一次,并且还会动态显示更改。

所以: -

second 1 :- 0.001
second 2:- 0.002
second 3 :- 0.003

这必须继续运行 1小时,我应该能够看到它的价值在我的网页上动态变化。我怎样才能做到这一点?我做了很多关于使用 countup.js 的研究,但没有结果。我想到了使用ajax的解决方案,但这会导致很多负载。 什么是我能在这做的最好的?

5 个答案:

答案 0 :(得分:0)

simple with js

var value = 0.001; //value to start
var inc = 0.001; //increment
var end = 0.010; //to test , 1 hour is 3.600
var _interval = setInterval(function() {
  document.getElementById('midiv').innerHTML = value;
  value += inc;
  value = parseFloat(value.toFixed(3));
  if (value > end) {
    clearInterval(_interval);
  }
}, 1000);
<div id="midiv">
</div>

答案 1 :(得分:0)

你也可以尝试这个

<div id="display"></div>

var number = 1;
var timer = function(){
    number++;
  document.getElementById('display').innerHTML = parseFloat(number / 1000);
    if(number < 3600){ // 1 hour check
        setTimeout(timer,1000);
    }
};

timer();

答案 2 :(得分:0)

这是example使用rxjs

var interval = 1000;
var totrun = 60*1000

var v = 0

const source = Rx.Observable
.interval(interval) 
.takeUntil(Rx.Observable.timer(totrun)); 


const subscription = source.subscribe(
  t => {
    v=v+0.001          
    $('#v').html(v);    
  },
  err => console.log('Error: ' + err),
  () => console.log('Completed'));

答案 3 :(得分:-1)

 var interval = setInterval(function(){ 
             
     var old = parseFloat($(".number").html());
     var newValue = old + 0.001;
     $(".number").html(newValue);

 }, 1000);

 // this clears the interval loop from firing after 1 hour
 setTimeout(function(){
     clearInterval(interval);
 }, 3600000)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="number">0.001</div>

应该做的伎俩

答案 4 :(得分:-1)

这是你想要的吗? 随意玩它

var c = 0.000;
var count = document.getElementById('count');
count.innerHTML = c;

// Creates the interval with the name interval
var interval = setInterval(function() {
  c += 0.001
  count.innerHTML = c;

  // Its possible that you will see 0.00300000000007 artifacts
  // You can fix it by converting it to a string and showing only a part

  // count.innerHTML = ("" + c).substring(0, 5);
}, 100) // 1/10 sec for demo

// Clear the interval after one hour
setTimeout(function() {
  clearInterval(interval)
}, 1000) // one second for demo
counter: <span id="count"></span>