简单的javascript计数器,可以在网页关闭后暂停和恢复

时间:2017-09-18 08:57:20

标签: javascript php jquery html

我需要创建一个非常简单的基于Javascript的计数器,它计算货币(所以两个小数位)并且每分钟增加0.18。这个想法是通过公司的新太阳能电池板代表“实时”估计的节省,这个柜台将由员工每天启动和停止,并在第二天继续。

我找到了其他人的小提琴,用于开始/恢复计数器:http://jsfiddle.net/f9X6J/ HTML:

<span id="hour"></span>
<span id="min"></span>
<span id="sec"></span>
<input id="pauseButton" type="button" value="Pause">
<input id="resumeButton" type="button" value="Resume">

使用Javascript:

  var Clock = {
  totalSeconds: 1000,

  start: function () {
    var self = this;

    this.interval = setInterval(function () {
      self.totalSeconds += 1;

      $("#hour").text(Math.floor(self.totalSeconds / 3600));
      $("#min").text(Math.floor(self.totalSeconds / 60 % 60));
      $("#sec").text(parseInt(self.totalSeconds % 60));
    }, 1000);
  },

  pause: function () {
    clearInterval(this.interval);
    delete this.interval;
  },

  resume: function () {
    if (!this.interval) this.start();
  }
};

Clock.start();

$('#pauseButton').click(function () { Clock.pause(); });
$('#resumeButton').click(function () { Clock.resume(); });

到目前为止这很棒,但我需要以下内容:

  1. 它不能计算时间,而是钱。
  2. 如果计算机关闭,必须将其保存到服务器。
  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

为了2019年的初学者。这两个问题的答案是,

1)将计数器保留在时钟对象之外,并在时钟处于活动状态时每秒向其添加1。这将提供时钟处于活动状态的总秒数。然后可以随时将其转换为总节省额。

2)暂时不要跳到服务器端。尝试将总计存储在localStorage中,即使关闭计算机电源,该存储仍然存在,直到在浏览器中清除了浏览数据为止。这样可以避免增加很多复杂性。下面是一个在本地存储值并从中读取值的示例。

<html>
  <head></head>
  <body>
    <div id="counter"></div>
  </body>
  <script>
    var counter;
    if( localStorage.getItem("counter") == null) { 
      counter = 0;
      localStorage.setItem("counter", counter); 
    } else {
      counter = localStorage.getItem("counter");
    }
    document.getElementById('counter').textContent = counter;
    setInterval(function(){
      counter = parseInt(counter)+1;
      localStorage.setItem("counter", counter); 
      document.getElementById('counter').textContent = counter;
    },1000);
  </script>
</html>

希望这提供了正确的方向。