【问题标题】:After 30 seconds, update MYSQL database30秒后,更新MYSQL数据库
【发布时间】:2010-06-14 10:20:12
【问题描述】:

我一直在 SO 和 Google 上四处寻找,但找不到任何符合我描述的内容。

如果页面在 30 秒后没有刷新,我想做的是更新数据库。如果此人在过去 30 秒内未访问过该页面(我可以这样做),我想通过电子邮件向某人发送{由其他用户提交}的表单内容(我可以这样做)。

我尝试做的是让应该访问的页面每 30 秒刷新一次,所以我想如果我在 31 秒后执行类似的操作,请编辑数据库(因此,如果刷新的页面没有刷新,则数据库编辑将运行)。

很抱歉,如果这听起来很复杂,可能有更好的方法来做到这一点,但我不确定如何。

更大的图景是我正在尝试做一个“值班”之类的事情,这样如果这个人没有积极地查看页面,他们就会收到包含表单内容的电子邮件。该页面将包含所有输入表单结果的表格。

【问题讨论】:

    标签: php mysql time timeout


    【解决方案1】:

    您可以通过在每次用户刷新页面时创建带有时间戳的记录来更新数据库。然后,如果时间戳超过 30 秒,您可以有一个 PHP 工作者定期查看数据库,并启动电子邮件。

    【讨论】:

    • 啊,是的,这是一种更简单的方法。
    • 谢谢。我现在知道日期了。 date("m/d/Y h:i:s a", time());我怎样才能增加 30 秒呢?
    • 我想我会在 Mysql 中完成所有的日期时间,这会给你更多的一致性:刷新时,你会执行类似“update last_refresh set timestamp = NOW() where user = ... ”,并检查您是否需要发送电子邮件“从 last_refresh 中选择用户,其中 DATEDIFF(NOW(), timestamp) > (30 / (3600 * 24))”(未经测试,我更像是 Postgresql本人:) )
    【解决方案2】:

    我无法为工作的服务器端部分提供 php 解决方案。但基本上您需要设置 javascript 计时器(例如 jquery 超时),并在 30 秒后执行 ajax 调用,该调用将在服务器上执行您想要的操作(将内容保存到数据库、发送电子邮件等)。

    我希望我明白你的意思,我的建议会以某种方式帮助你。

    【讨论】:

      【解决方案3】:

      也许基于 setTimeout javascript 函数每 30 秒使用一次 AJAX 调用?

      http://www.w3schools.com/js/js_timing.asp

      function timedCount()
      {
          # ajax call
          t=setTimeout("timedCount()",30000);
      }
      

      【讨论】:

        【解决方案4】:

        我建议像这样使用 javascript:
        window.setTimeout("location.reload(true);", 3000);

        这当然是在你迫切需要重新加载的情况下,但用户显然会因为你为他重新加载窗口而生气。

        【讨论】:

        • 您可以在不重新加载页面的情况下执行此操作
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-13
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-25
        • 2013-09-20
        相关资源
        最近更新 更多