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