可能重复:
Javascript countdown timer that stops when window is not in focus
我一直在寻找解决这个问题的方法。
我想要做的是:当访问者点击网站上的特定链接时,他会被重定向到另一个页面。
在另一页上,他必须停留20秒。但是我想要倒计时,所以他看到计时器从20秒降到0秒。
当计时器达到0秒时,我将执行一个PHP脚本。 (它已经到位)
现在,wt我也想要的是,只要访问者在这个页面上,定时器就会保持滴答声(如果这个页面是焦点),否则定时器会停止,直到他回到页面上
我已经搜索了很多寻找解决方案,但我甚至不知道它是否可用于php。
任何帮助至少让我知道在哪里搜索将非常感激
提前多多谢谢你
答案 0 :(得分:0)
在PHP中不可行。 PHP是一种服务器端语言,因此您可以请求页面,编译并提供服务。
你需要JavaScript。你需要做的是将任务分解为几个步骤。所以你知道:
因此,您的第一步是查看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!";
}