2

できるだけ簡単な方法で、人が私のサイトにいる秒数を記録できるようにしたいと思います。グーグルアナリティクスや他のサードパーティのソースは必要ありません。

phpスクリプトは、mysqlへの接続を作成し、関連する値を更新します。

オンラインでスクリプトを見つけましたが、機能していないようです。


<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
   $(document).ready(function()
   {
       var refreshId = setInterval(function()
          $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
       }, 5000);
   );
</script>

助けてくれてありがとう!

4

4 に答える 4

3

setInterval構文エラー、関数への開始の欠落、および.readyメソッドの終了があります

<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
$(document).ready(function(){
    var refreshId = setInterval(function(){ //SYNTAX ERROR HERE
        $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
    }, 5000);
}); // SYNTAX ERROR HERE
</script>

さらに、$.getJQueryの.loadは通常、特定のコンテナにHTMLをロードするためのものであるため、このメソッドを使用することをお勧めします。

var refreshId = setInterval(function(){
    $.get('timeonpage.php',{wzx:<?php echo $t?>,ip:<?php echo $ip?>});
},5000);
于 2012-11-26T19:36:03.530 に答える
2
<script  src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
<script>
$(document).ready(function()
{
 var refreshId = setInterval(function(){ //ANOTHER ERROR
    $.load('timeonpage.php?wzx=<?php echo $t; ?>&ip=<?php echo $ip; ?>');
 }, 5000);
}); //ERROR ON THIS LINE
</script>

ドキュメントを閉じる準備ができたら、そこに「}」がありません。それを試してみてください、とても単純なことかもしれません、そうでない場合は報告してください、そしてそれをもう一度見てください:)

また、サードパーティのサービスを検討する場合は、GoSquaredをご覧ください。真剣に素晴らしいサイトです:)

編集:setInterval行の別のエラー:)

于 2012-11-26T19:35:48.550 に答える
0

現在の方法では、ユーザーがブラウザウィンドウを開いたままにすると、1日あたり86,400秒間すべてオンラインとしてカウントされる可能性があります。

個人的には、ユーザーが実際にページを読み込むたびに、「最後に読み込まれたページ」の時刻が更新されるようにサイトが設定されています。次に、cronスクリプトが1分ごとに実行され、その最後の1分間にどのユーザーがページをロードしたかを確認します。それらを数えることで、各ユーザーがオンラインで費やした時間をかなりよく判断できます。

さらに、これによりサーバーの負荷が大幅に軽減されます。サイトに50人以上のユーザーがいる場合、ソリューションによってサーバーが強制終了される可能性があります。

于 2012-11-26T19:38:58.060 に答える
0

ページと必要なその他のデータをデータベースに保存し、変数に格納する一意のIDを返すAjaxスクリプトを呼び出す方が、おそらくはるかに効率的なonLoadになります。次に、onbeforeunloadイベントで、一意のIDを使用してデータベースをもう一度呼び出すことができます。ちょうど私の2セント...

于 2012-11-26T19:45:09.597 に答える