1
我有一個網站運行php與mySQL數據庫。對於每個訪問我訪問該站點的訪問者,我都會在單獨的表格中記錄用戶會話(從過去的5分鐘)。動態計數器,更改沒有頁面重新加載
如何在頁面上製作一個動態計數器,可以在不重新加載頁面的情況下更改活動會話的數量,例如,如果我在網站上,並且有15個其他人進入櫃檯,則會自動更改而無需重新加載頁面。
我有一個網站運行php與mySQL數據庫。對於每個訪問我訪問該站點的訪問者,我都會在單獨的表格中記錄用戶會話(從過去的5分鐘)。動態計數器,更改沒有頁面重新加載
如何在頁面上製作一個動態計數器,可以在不重新加載頁面的情況下更改活動會話的數量,例如,如果我在網站上,並且有15個其他人進入櫃檯,則會自動更改而無需重新加載頁面。
在非常基本的情況下,您可以通過AJAX輪詢服務器腳本。這PHP腳本將通過類似的在線用戶數量,這些用戶名等一些所需的信息,以便例如JavaScript部分:
// 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
)));
非常感謝。我用你提供的代碼嘗試過,但沒有輸出。我必須仔細觀察一下。只是一個問題..我不需要'回聲'計數,因爲它能夠顯示?謝謝 – 2012-01-18 21:50:09
我提供的代碼工作得很好。再仔細看看。當然,你需要你的PHP腳本輸出一些迴應。 'echo','die','print'等。如果你只需要一個數字,你可以簡單地改成'echo 25;'或'die(25)'。 – dfsq 2012-01-19 06:46:51
您也可以將間隔時間改爲小於1分鐘,也許這就是您沒有輸出的原因,因爲1分鐘必須先通過。 – dfsq 2012-01-19 06:48:41