ここに最小限の例があります -
index.php
<?php
$count = file_get_contents("count.txt") + 0;
file_put_contents("$count.txt [loaded]", '');
file_put_contents("count.txt", $count + 1);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="jquery-1.10.2.min.js"></script>
</head>
<body>
<main>
<p> hi there </p>
</main>
<script type="text/javascript">
var id = "<?php echo $count; ?>";
</script>
<script src="script.js"></script>
</body>
</html>
script.js
$(document).ready(function ()
{
$(window).bind('beforeunload', function () {
$.post("unloader.php", { id : id });
});
});
unloader.php
<?php
file_put_contents("$_POST[id] [unloaded]", '');
Web ページを開くと、カウント数を名前とするファイルが作成されます。タブを閉じると、jquery は unloader.php を要求します。これは、名前としてカウント数を持つファイルを作成する単なるスタンドアロン スクリプトです。
うまくいくこともあれば、うまくいかないこともあります。つまり、オープニングファイルは常に作成されます。ただし、閉じるときに作成する必要があるファイルが作成されない場合があります。問題が発生した場所について何か考えはありますか?