页面关闭10秒后调用URL

时间:2016-05-27 05:49:46

标签: javascript php postback

我想检测页面何时关闭,10秒后,使用php调用网址。由于php是服务器端,我想与JS不同,它会调用url而不管页面是否处于活动状态。

要致电的网址:http://postback.com/?id=xx

2 个答案:

答案 0 :(得分:0)

关闭页面后,您无法执行与用户相关的任何操作。

将Cron作业与ajax调用一起使用。

如果Ajax仍在线,则会向服务器发送。在数据库中保存时间戳以及一些用于识别浏览器的唯一ID。

每隔一两天运行一次Cron Job。检查数据库中的时间戳是否早于10秒。如果是这样,请使用cUrl来调用您的网址

伪码:

[js]
setInterval(
    function () {
        $.post('keepAlive.php?id='+$('#uid').val()),
    }
    4000
);

[PHP | keepAlive]

$db->insertOrUpdate($_GET['id'], time());

[PHP | cron]

$alive = $db->query('SELECT * FROM alive WHERE `time` < '.time());

foreach ($alive as $data) {
    $this->sendCurl($data);
}

答案 1 :(得分:0)

浏览器中没有“关闭”事件,可能出于安全原因。

This post提供使用子窗口来控制结束过程。 这样,在父窗口中输入以下代码:

var win = window.open('http://www.google.com','google','width=800,height=600,status=0,toolbar=0');   
var timer = setInterval(function() {   
    if(win.closed) {
        clearInterval(timer);
        setTimeout (function () {$.get( "http://postback.com/?id=xx" );}, 10000); 
    }  
}, 1000);

此代码尚未经过我的测试。