PHP在焦点时显示实时倒计时(20秒)

时间:2012-09-21 18:06:22

标签: php javascript focus countdown

  

可能重复:
  Javascript countdown timer that stops when window is not in focus

我一直在寻找解决这个问题的方法。

我想要做的是:当访问者点击网站上的特定链接时,他会被重定向到另一个页面。

在另一页上,他必须停留20秒。但是我想要倒计时,所以他看到计时器从20秒降到0秒。

当计时器达到0秒时,我将执行一个PHP脚本。 (它已经到位)

现在,wt我也想要的是,只要访问者在这个页面上,定时器就会保持滴答声(如果这个页面是焦点),否则定时器会停止,直到他回到页面上

我已经搜索了很多寻找解决方案,但我甚至不知道它是否可用于php。

任何帮助至少让我知道在哪里搜索将非常感激

提前多多谢谢你

4 个答案:

答案 0 :(得分:0)

在PHP中不可行。 PHP是一种服务器端语言,因此您可以请求页面,编译并提供服务。

你需要JavaScript。你需要做的是将任务分解为几个步骤。所以你知道:

  1. 倒计时应该是20秒
  2. 应在倒计时结束时执行脚本
  3. 因此,您的第一步是查看JavaScript中的setTimeout()函数。然后,您希望回调函数重定向,或通过XMLHttpRequest(AJAX)调用另一个URL。

答案 1 :(得分:0)

我认为this将完成这项工作,您只需在此脚本之前包含jQuery库。在jQuery中编写脚本比纯javascript容易得多。 Personaly我很少使用纯JavaScript。

答案 2 :(得分:0)

阴暗 - 为什么?网站是否与人类互动?

你可以用Javascript来做,但有人觉得这会惹恼你的用户/ cusomters / clients / employess。

PS:PHP只需在服务器上运行。

答案 3 :(得分:0)

您需要在PHP中执行的操作是确定计时器开始的时间,例如在请求页面时。假设页面为download.php,代码如下所示:

session_start(); //this has to be before you echo any text out or send any headers
$_SESSION['minimum_time'] = time() + 20;

然后在页面输出的HTML中,您可以显示JavaScript倒计时器。您应该只搜索一个简单且适合您应用程序的文件。

让JS计时器倒计时20秒。也许在这里添加一个额外的秒,或者从PHP中减去一个以防万一,但是由于网络时间和页面呈现,在JS计时器结束时用户总是在开始时间之后至少20秒。

在JS倒计时后重定向用户或向他们显示指向新页面的链接,让我们称之为file.php,它应该是这样的:

if (time() > $_SESSION['minimum_time']) {
  print "Thanks for waiting!";
}