可以使用jQuery构建无限/永久计数器吗?

时间:2017-03-30 15:17:55

标签: jquery math counter

客户问:

  

......我们公司拖沙,到目前为止,我们已经拖了17亿美元   磅和计数。我希望有一个柜台;它需要   连续计数,而不是恢复到原来的数字后   页面刷新。我需要计数器从17亿开始   磅,每秒增加154磅。

是否需要数据源,或者这样的计算是否与时间挂钩? (例如:当前服务器时间)

我假设可能需要锁定当前的实际值,因此需要每周/每月调整计算以反映真实情况。但它真的只是SAND(不是火箭科学)。

2 个答案:

答案 0 :(得分:0)

我认为您的服务器上需要3件事:

  • 初始值
  • 初始日期+时间
  • 速度

然后使用这3个你可以随时计算价值。

如果你想要

  

因此需要每周/每月调整计算以反映真实情况。

您可以在某些管理界面上为其设置可自定义的属性。您甚至可以让用户输入新的日期和值,并使用与先前值的差异来计算速度。但是仍然有必要为用户提供一些UI以覆盖速度,以防出现错误。

现在回到主营业务。为了使其或多或少可靠,我将分两步进行计算:首先在服务器端,然后在客户端。首先在服务器端,您将当前值计算为:

initial_value_for_client = initial_value + speed * (current_time - initial_time)

并将其与speed一起放入页面JS中。然后在客户端使用简单的setIntervalspeed添加到initial_value_for_client并更新HTML。通过两步完成,您不依赖于客户端时区。您的价值只有在下载页面并开始执行时才会出错,而且不应该太多。

答案 1 :(得分:0)

很容易。

var startDate = new Date("2017-03-01T01:10:00");
var vStart =1700000000
var vPerSec = 151

setInterval(function(){
    var timeDiffSec = (new Date.getTime()-startDate.getTime())/1000
   var vCur = vStart +( timeDiffSec * vPerSec);
},1000);
   document.write(vCur);