假设我想要一个实时显示PHP内存使用情况的网页。
我可以通过以下方式获取内存:
memory_get_peak_usage(1)
我可以在这样的输入字段中打印它:
<form>
Memory usage: <input type="text" name="FirstName" value="<?echo memory_get_peak_usage(1);?>">
</form>
并且更新输入字段中的值的选项将重新加载页面,但是如何在不刷新的情况下执行此操作?
我打赌我必须使用GET / POST方法。
while (1)
{
$mem = memory_get_peak_usage(1);
sleep(0.5);
update_inputField_value($mem);
}
答案 0 :(得分:3)
你必须使用类似长轮询的东西,你有一个网站让客户端等待请求,偶尔会根据需要提供一些HTML;或类似socket.io的实现,用于nodejs,允许您执行本机寻找的操作。
以下是关于使用PHP进行longpolling的问题:How do I implement basic "Long Polling"?
这是一个关于如何使用socket实现的socket.io的问题: Using PHP with Socket.io
最后一种选择是在计时器上进行ajax调用,该计时器每隔几秒就会触发一次Web服务,即使是定期刷新,也会给页面带来实时感觉。
假设您正在使用jquery:
setTimeout(function(){
$.ajax({
dataType: "json",
url: 'memoryUsage.php',
success: function(data){
$("#FirstName").val(data.memory)
}
});
}, 5000); //5 seconds
假设你的memoryUsage.php回显了一个看似{memory:“some value”}的值
请记住,所有这些选项都是相当大的内存和网络流量。