我有一个网页,允许启动某个进程,然后重定向到显示该进程的日志文件的另一个页面。由于执行最多需要10分钟,因此我希望日志页面能够自动进行自动更新,或者定期从文件中加载数据。
现在我添加了
<meta http-equiv="refresh" content="5;url=log.php#bottom" />
到html / head,但想知道是否有更好的解决方案。有人可以提出任何关于解决这个问题的建议吗?
答案 0 :(得分:1)
你可以:
答案 1 :(得分:1)
我是这样做的:
var current_length = 0;
function update() {
setTimeout(update, 3000);
$.post("/update_url", { 'current_length': current_length }, function(data) {
if (data.current_length != current_length) return; //it's too old answer
$("#log").html($("#log").html() + data.text);
current_length += data.text.length;
}, "json");
}
update();
服务器必须在开始时跳过几个字节,并使用current_length和文件的其余部分发送json。
我更喜欢使用memcached来存储流程输出。
答案 2 :(得分:0)
使用AJAX执行此操作。简单的jQuery:
<script type="text/javascript">
$(function(){
window.setInterval('updateLog()', 5000);
});
function updateLog() {
$.get('log.php');
}
</script>
答案 3 :(得分:0)
为什么不使用javascript?
使用setInterval并定期对log.php运行AJAX调用。
您也可以使用iframe,但在我看来,AJAX perdiodical调用是更好的方式。