Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭浏览器时使用ajax执行查询的解决方案_Javascript_Php_Ajax - Fatal编程技术网

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

Javascript 关闭浏览器时使用ajax执行查询的解决方案,javascript,php,ajax,Javascript,Php,Ajax,当用户关闭浏览器时,我正在尝试更新数据库。我正在使用ajax和window.onbeforeunload。这是代码。代码不执行。告诉我哪里出了问题 First.php <script type="text/javascript"> window.onbeforeunload = function() { $.ajax({ url: 'logout.php', type: 'POST', async: false, timeout: 4000 });

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

First.php

<script type="text/javascript">

window.onbeforeunload = function() {
$.ajax({
    url: 'logout.php',
    type: 'POST',
    async: false,
    timeout: 4000
});
};
</script>
    <?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);
?>

window.onbeforeunload=函数(){
$.ajax({
url:'logout.php',
键入:“POST”,
async:false,
超时:4000
});
};
logout.php

<script type="text/javascript">

window.onbeforeunload = function() {
$.ajax({
    url: 'logout.php',
    type: 'POST',
    async: false,
    timeout: 4000
});
};
</script>
    <?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);
?>

请尝试下面的方法并检查它是否有效

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

请尝试下面的方法并检查它是否有效

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

尝试此操作:上述代码应创建一个文件logger.txt,并在关闭窗口时写入该文件

First.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>

尝试此操作:上述代码应创建一个文件logger.txt,并在关闭窗口时写入该文件

First.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>

不。未获得任何结果似乎有两个可用选项可供卸载和onbeforeunload。但这些命令不可靠&不推荐使用。看看一些老问题,下面是他们要说的:-如果你确实需要这个,每分钟发送一个请求,基本上告诉服务器“我还在这里”。然后,如果服务器没有收到这样的请求超过两分钟(你必须考虑延迟等),你考虑客户端FRONNE.NOPE。未获得任何结果似乎有两个可用选项可供卸载和onbeforeunload。但这些命令不可靠&不推荐使用。看看一些老问题,下面是他们要说的:-如果你确实需要这个,每分钟发送一个请求,基本上告诉服务器“我还在这里”。然后,如果服务器不接受这样的请求超过两分钟(你必须考虑延迟等),你认为客户端离线。有一个小问题。我希望在浏览器或选项卡关闭时执行查询,但如果该页面中存在任何按钮或链接,并且我单击其中任何一个,则查询也会执行。这方面你能帮我吗?有点问题。我希望在浏览器或选项卡关闭时执行查询,但如果该页面中存在任何按钮或链接,并且我单击其中任何一个,则查询也会执行。在这方面你能帮我吗?