我要做的是获取一个变量,每隔5秒更新一次:
setInterval(document.getElementById("listeners").innerHTML =
"<?php include('../includes/shoutcaststuff.php');
echo $dnas_data['CURRENTLISTENERS']; ?>",5000);
但是会发生什么是内部html已设置但不会像应该的那样每5秒更新一次。 我的猜测是php只执行一次,但我不知道是不是这样。 并且我知道我应该创建一个函数来完成setInterval中的内容...一旦我弄清楚如何使其工作,我将清理代码。 提前谢谢。
好的...... ajax是'最好'的答案,因为这里一次登录的人数不会超过2人,所以服务器请求并不是什么大问题。 这是我如何让它工作:function lCount(){
$.get("../includes/shoutcaststuff.php",{Count: "TRUE"}, function(data){
document.getElementById('listeners').innerHTML = data;
});
}
setInterval(lCount,5000);
并将其添加到php的末尾:
if(isset($_GET["Count"])){
echo $dnas_data['CURRENTLISTENERS'];
}
现在它运作正常。
感谢你们的建议:)
答案 0 :(得分:0)
PHP代码在生成HTML / JS的服务器上运行。如果你需要在页面加载后运行php代码,请使用ajax。
看看这个例子;
使用此:
setInterval(document.getElementById("listeners").innerHTML =
"<?php echo "1";?>",5000);
将此输出到浏览器:
setInterval(document.getElementById("listeners").innerHTML =
"1",5000);
答案 1 :(得分:0)
<?php include('../includes/shoutcaststuff.php');
echo $dnas_data['CURRENTLISTENERS']; ?>
此代码仅在构建页面时执行一次。在剩下的时间里,这个javascript被称为第一次回显的任何值。
这里不需要使用静态值,而是需要使用ajax请求(如果你想使用html5,则需要使用websocket)。然后,请求将每5秒钟到达您的服务器一次。请记住,这可能会导致服务器出现过度负载。
Ratchet是一种常用的PHP WebSocket实现,允许使用推送技术将数据发送到客户端。这可能比使用您的轮询方法更为可取。