我想检测页面何时关闭,10秒后,使用php调用网址。由于php是服务器端,我想与JS不同,它会调用url而不管页面是否处于活动状态。
要致电的网址:http://postback.com/?id=xx
答案 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);
此代码尚未经过我的测试。