关闭浏览器时使用 ajax 执行查询的解决方案

Solution to Execute a query using ajax when browser is closed

本文关键字:执行 查询 解决方案 ajax 浏览器      更新时间:2023-09-26

当用户关闭浏览器时,我正在尝试更新我的数据库。我正在使用 ajax 和 window.onbeforeunload。这是代码。代码不执行。建议我哪里出错了

第一.php

<script type="text/javascript">
window.onbeforeunload = function() {
$.ajax({
    url: 'logout.php',
    type: 'POST',
    async: false,
    timeout: 4000
});
};
</script>

注销.php

    <?php
$username = "root";
$password = "";
$hostname = "localhost"; 
$dbhandle = mysql_connect($hostname, $username, $password) 
 or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

$selected = mysql_select_db("examples",$dbhandle) 
  or die("Could not select examples");
$result =  mysql_query("DELETE FROM cars WHERE id='1'");
mysql_close($dbhandle);
?>

试试这个:上面的代码应该创建一个文件记录器.txt并在关闭窗口时写入它。

首先.php:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
window.addEventListener("beforeunload", function (e) {
    $.ajax({
        url: 'logout.php',
        type: 'POST',
        async: false,
        timeout: 4000
    });
})
</script>

注销.php//您可以在此处添加代码

$filename = "logger.txt";
$fd = fopen($filename, "a");
$dump="it came here";
$str = sprintf("[%s] %s", date("Y-m-d H:i:s"), $dump);
fwrite($fd, $str . "'n");
fclose($fd);
请尝试

以下操作并检查它是否有效!

$(window).bind('unload', function(){
            $.ajax({
                url: 'logout.php',
                type: 'GET',
                async: false,
                timeout: 4000
            });
        });