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

PHP显示焦点时的实时倒计时(20秒),php,javascript,focus,countdown,Php,Javascript,Focus,Countdown,可能重复: 我一直在寻找解决这件事的办法 我想做的是:当访问者点击网站上的特定链接时,他会被重定向到另一个页面 在另一页,他必须停留20秒。但我想倒计时,所以他看到计时器从20秒下降到0秒 当计时器达到0秒时,我将执行一个php脚本。(已就位) 现在,我还想要的是,只要访问者在这个页面上,计时器就会一直滴答作响(如果这个页面处于焦点),否则计时器就会停止,直到他回到页面上 为了找到一个解决方案,我搜索了很多,但我甚至不知道用php是否可行 任何帮助,至少让我知道在哪里搜索将非常感谢 提前非常感

可能重复:

我一直在寻找解决这件事的办法

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

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

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

现在,我还想要的是,只要访问者在这个页面上,计时器就会一直滴答作响(如果这个页面处于焦点),否则计时器就会停止,直到他回到页面上

为了找到一个解决方案,我搜索了很多,但我甚至不知道用php是否可行

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


提前非常感谢

这在PHP中是不可行的。PHP是一种服务器端语言,因此您可以请求一个页面,然后对其进行编译和服务

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

  • 应该有20秒的倒计时
  • 应该在倒计时结束时执行脚本

  • 因此,第一步是查看JavaScript中的
    setTimeout()
    函数。然后,您希望回调函数重定向,或者通过XMLHttpRequest(AJAX)调用另一个URL。

    我认为可以完成这项工作,您只需要在这个脚本之前包含jQuery库。在jQuery中编写脚本比纯javascript容易得多。就个人而言,我很少使用纯javascript。

    Shady-为什么?网站不应该与人类互动吗

    您可能可以使用Javascript来实现这一点,但有人认为这会激怒您的用户/客户/客户/雇员


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

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

    session_start(); //this has to be before you echo any text out or send any headers
    $_SESSION['minimum_time'] = time() + 20;
    
    if (time() > $_SESSION['minimum_time']) {
      print "Thanks for waiting!";
    }
    
    然后在页面输出的HTML中,可以显示JavaScript倒计时计时器。你应该只搜索一个简单的,适合你的应用程序

    让JS计时器也倒计时20秒。也许在这里多加一秒,或者从PHP端减去一秒以防万一,但由于网络时间和页面呈现,用户在JS计时器结束时,很可能总是比开始时间晚至少20秒

    在JS倒计时重定向用户或向他们提供指向新页面的链接后,我们称之为
    file.php
    ,它应该有如下内容:

    session_start(); //this has to be before you echo any text out or send any headers
    $_SESSION['minimum_time'] = time() + 20;
    
    if (time() > $_SESSION['minimum_time']) {
      print "Thanks for waiting!";
    }
    

    当然,这在PHP中是不可行的。客户端设备上的所有工作都必须通过javascript或类似于elm、flapjax或coffeescript的编译来完成;不,任何类似的事情都可以绕过,除非你在服务器上增加计数。布莱恩,非常感谢,这就是我需要的@Bryan很想这么说,但是我如何在php页面中调用这个函数呢?我贴了标签,但似乎不起作用:(好的,所以我需要JavaScript,好的,焦点问题,可以用JavaScript解决吗?我想,问题是一个php开发人员没有JavaScript方面的经验,但会尽我所能让它工作。非常感谢。我不确定你说的焦点是什么。用户可以打开页面,然后切换到另一个选项卡,而页面c在背景中,他们能不能?