我不知道这是否可能,或者是否存在,但我很好奇想知道。我不想给出错误的想法,在给出示例之前描述我想要实现的目标肯定会 - 所以我将直接深入其中。
据我所知,网站上的代码只有在有人访问这些网站时才会执行。如果没有人访问这些网站,代码就会放在那里。如果没有人使用这些代码就没有理由运行,对吗?
现在我要提出的建议可能听起来很荒谬,但请听我说完。我不知道有没有办法做到这一点,所以我只是想问问。有没有办法在没有人访问网站本身的情况下运行这些代码?
现在我知道你们中的一些人会说,“哈?他在说什么?如果没有人在网站上,为什么还要运行这些代码?这实际上毫无意义,”所以我要走了试图证明为什么我希望这样的事情成为可能。
例如,如果您想创建一个脚本,以便在用户处于非事件状态一段时间后自动注销该用户,您需要检查他们在过去(时间量)内是否处于事件状态在注销之前等待)。您可以使用 AJAX 检查它们最近是否处于事件状态(注销它们之前等待的时间)。如果他们导航或刷新页面,那么它将重置计数器,并让您知道他们最近一直处于事件状态(注销之前等待的时间)。但是,如果他们在(注销之前等待的时间)内不执行任何操作,他们将自动注销。
如果他们关闭浏览器,或者退出使用 AJAX 监视其进度的选项卡,它将不再监视他们的进度,因此他们的计数器将不会更新,因此您将不知道他们是否处于事件状态或不。如果他们关闭选项卡或浏览器,您不能直接将他们注销,因为如果他们打开了您网站的多个选项卡或浏览器怎么办?然后,您只想在他们关闭所有这些程序时将其注销。
我还有其他例子,但这就是要点。有没有办法在用户不访问网站的情况下执行网站上的代码?谢谢。
最佳答案
您正在寻找cron 作业
。它们基本上是在设定时间运行的预定作业。 cron 作业可以运行各种脚本,包括 PHP 脚本。
这样的脚本是否可以轻松清除过期 session ,我不知道。这可能取决于您存储 session 的方式。
在网站中实现它可能同样容易。如果您存储用户的最后一个事件时间戳,则只需检查新请求该时间戳是否太旧,如果是,则删除 session 并重定向到登录页面。这样,用户就可以正式保持登录状态,直到下一个请求为止。
您可以选择删除 PHP 记住的旧 session 。查看相关问题:Cleanup PHP session files .
关于javascript - PHP在不访问网站的情况下执行网站代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696720/