浏览器关闭时运行php文件

时间:2018-03-14 15:37:09

标签: javascript php jquery

我有一个将数据保存到数据库的php文件,即使浏览器关闭,我希望文件继续运行。 这是我试过的: js.php文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>   
<script type="text/javascript">

  setInterval(function() {
    $.get('http://localhost/cryptopiamodelp/tst.php/', function(data) {
      //do something with the data
      alert('Load was performed.');
    });
}, 5000);
</script>

tst.php文件:

<?php

$con = mysqli_connect('localhost','root','','cryptopiamodel') or die(mysql_error());
$sqli = "INSERT INTO test VALUES ('')" or die(mysqli_error());
mysqli_query($con,$sqli) or die(mysqli_error($con));
?>

但这仅在浏览器打开时有效,这是否可以在php中关闭浏览器时执行js.php文件,以便将数据连续保存到数据库中? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以设置一个cron作业。 cron作业允许您设置几乎任何类型的计划。根据您托管Web应用程序的位置,可以设置不同的cron作业。

例如,如果您的站点托管带有cPanel,则可以选择定义cron作业。您可以设置计划并提供php文件的路径。

答案 1 :(得分:-1)

您可以使用ignore_user_abort来避免php在浏览器断开连接时挂起执行。

然后,您可以使用set_time_limit将默认时间限制(30秒)更改为无限制或您需要的任何其他值:

ignore_user_abort(true);
set_time_limit(0);

阅读http://php.net/manual/en/function.ignore-user-abort.php