php服务器端计时器有几个按钮来调整时间

时间:2015-11-21 16:41:32

标签: php jquery timer

我知道这个计时器问题已被问过几次,但我觉得我在这里有一个非常具体的问题,我找不到答案。我正在尝试创建一个应用程序,其中页面中有一个倒计时器,默认值为0.并且有3个按钮可以反映不同的任务,其中每个按钮将触发计时器并在点击时从30分钟开始倒计时。 我通过创建一个用于在按钮单击时存储时间戳的数据库并运行一个计算已用时间的函数,然后我每秒使用jquery刷新php,只用了一个按钮就成功了。 php代码是这样的

$button1 = $user->data->button1; // get button1 timestamp from database

// COUNTER is defined as 1800 seconds
$elapsed1 = COUNTER - (time() - $button1);
if ($elapsed1 < '0') {
    $elapsed1 = '0'; // stop timer so it doesn't go negative
    $disabled1 = ''; // make button1 enabled when timer stop
} else {
    $disabled1 = 'disabled'; // disabled button1 when timer running
}
$timer = $elapsed1;

现在我想添加更多按钮并为每个按钮添加相同的30分钟,因此计时器运行30分钟,点击1个按钮,1个小时点击2个按钮。我想将更多经过时间的变量添加到计时器中,如

$timer = $elapsed1 + $elapsed2 + $elapsed3;

单击1个按钮仍可正常工作,但点击2个按钮可下降2秒,单击3个按钮可下降3秒。我怎么能实现这个目标? 任何建议表示赞赏,或者对我所制作的代码有更好的做法。提前谢谢。

1 个答案:

答案 0 :(得分:1)

目前,“按下2秒”和“减少3秒”事件可能只是点击按钮和计时器倒计时的延迟。

此外,不是每秒都对服务器执行ping操作,为什么不将启动时间戳发送到服务器,然后使用JavaScript / jQuery等待(并计数)。计时器用完后,请与服务器联系以确保它是合法的。这将极大地帮助解决扇出问题/服务器负载。

如果您遵循此案例,则需要进行以下重组:

  • JavaScript处理初始发布到服务器
    • 初始时间戳
    • 持续时间直至行动或结束时间戳
  • 用于处理客户端计时器的JavaScript
    • On Timer end - &gt;使用AJAX联系服务器,检查是否有必要的时间来执行操作,否则设置TimeOut重试。