1
私は、mySQLデータベースを使用してphpを実行しているWebサイトを持っています。サイトにアクセスしたすべての訪問者に対して、過去5分間のユーザーセッションを別のテーブルに記録します。ページリロードなしで変更される動的カウンタ
ページをリロードせずにアクティブなセッションの量を変更する動的カウンターを作成するにはどうすればいいですか?つまり、私がウェブサイトにいて15人が来たら、 。
私は、mySQLデータベースを使用してphpを実行しているWebサイトを持っています。サイトにアクセスしたすべての訪問者に対して、過去5分間のユーザーセッションを別のテーブルに記録します。ページリロードなしで変更される動的カウンタ
ページをリロードせずにアクティブなセッションの量を変更する動的カウンターを作成するにはどうすればいいですか?つまり、私がウェブサイトにいて15人が来たら、 。
非常に基本的なケースでは、AJAX経由でサーバースクリプトをポーリングできます。
// Poll the server each 60 seconds
window.setInterval(function() {
$.getJSON('/online_users.php', function(data) {
// Here the data JSON returned by a PHP script
// e.g. data.count - count of sessions online
// data.users - could be array of user objects, etc
$('#counter').text(data.count); // Update some DOM element with new number
});
}, 60000);
とサーバ側online_users.php
:
<?php
// connect to DB, perform all necessary operations
// output needed info in JSON format
$users = array(
array('username' => 'Tomas', 'id' => 234),
array('username' => 'Jassy', 'id' => 42)
);
$count = count($users);
header('Content-type: application/json');
die(json_encode(array(
'count' => $count,
'users' => $users
)));
本当にありがとうございましたそのPHPスクリプトは、オンラインユーザ数、それらのユーザー名などのようないくつかの必要な情報と例のjavascriptので、一部を反応するだろう。私はあなたが提供したコードでこれを試しましたが、何も出力されていません。私はそれをもう少し詳しく調べなければならない。ただ1つの質問..私はそれを表示するためにカウントをエコーする必要はありません?ありがとう –
私が提供したコードはうまく動作します。ちょうど近づく。もちろん、レスポンスとして何かを出力するPHPスクリプトが必要です。 'echo'、' die'、 'print'などです。数字だけが必要な場合は' echo 25; 'や' die(25) 'に変更するだけです。 – dfsq
間隔を1分未満に変更することもできます。なぜなら、1分が最初に通過しなければならないため、出力がなかったからかもしれません。 – dfsq