将javascript倒计时与服务器时间同步

时间:2014-06-19 09:02:14

标签: javascript php jquery ajax

我会尽力以正确的英语解释我的问题。

我在ajax中有一个全局倒计时,用setinterval显示timeleft(用服务器时间计算)。 目标是在时间到达某个目标时仅调用一次函数。

$timeLeft = strtotime($wallet->date_upd)- time();
if ($timeLeft <= 3)
{ 
  function() 'this function update or not $wallet->date_upd to add time' 
}

由于ajax倒计时是全局的,并且由于传输和渲染延迟,该功能可以由多个用户调用..任何想法?

1 个答案:

答案 0 :(得分:0)

我认为当timleft结束并且您的脚本运行时,您还将date_upd更新为新时间?

在这种情况下,您可以进行更新并检查是否存在受影响的行 如果另一个脚本比查询中的WHERE更快,则不再有效,且affected_rows将为0。

$new_date_upd = date('Y-m-d H:i:s', strtotime('+2 hours'));

mysql_query("UPDATE wallet SET date_upd = '{$new_date_upd}' WHERE date_upd = '{$wallet->date_upd}'");
if (mysql_affected_rows() > 0) {
   // this script is the only one doing this stuff 
}

所以这应该是在MySQL工作的东西。

如果您正在管理自己的服务器并且可以安装一些东西,那么我建议您查看Redis.io,这是一个很好的工具,可用于处理内存(如高级内存缓存),它也可以帮助您做&#39;锁定&#39;以一种很好的方式