編集:私は$ idに「塩漬け」を追加しました。分かりませんが、私はそれがもっとユニークであると感じています。マイクロ秒の使用が、この
jQueryのようなだけ余分確認する
何か:StayAlive.phpへ Ajaxリクエストごとに10秒
function pingPing(){
$.ajax(
{
type:'GET',
url:'StayAlive.php',
success: function()
{
setTimeout(pingPing, 10000);
}
}
}
PHP:StayAlive.php
<?php
function newUser(){
$id=sha1($_SERVER['HTTP_USER_AGENT'].microtime().$_SERVER['REMOTE_ADDR']);
setcookie("id", $id, time()+3600*24*365);
//create new row in the database for that $id
}
if (isset($_COOKIE["id"])){
//check if the id is in the database
//if yes => time_spent+=10
//if no => newUser();
}
else
newUser();
?>
出典
2012-03-17 17:59:50
Adi
JSベースのonbeforeunload-type ajax pingerを使用すると、誰かがページを離れるときを判断できます。特に、どこか別の場所に行かなくても、別のヒットを得ることはありません。 –
Marc Bが言ったこと、または10〜15秒の間隔でタイマーを作動させて、あなたのサーバーがまだページ上にあることを知らせるためにあなたのサーバーをpingすることができます。 pingが来なくなると、ユーザーは退去したとみなすことができます。 – msigman
あなたはそれを答えとして書いてみましょう.2本の裏返しとデモかもしれません。私はあなたに投票するでしょう〜) –