我有一个文件会每2秒更新一次,我想读取日志文件并将其发布到php文件中,但它只是读取文件内容一次而不是每2秒更新一次。 在这种情况下,not_insync_text值每2秒更新一次。 这是我的代码
<script>
//var insync_text = <?php echo $_SESSION['IN_SYNC_COUNT'];?>;
var not_insync_text = ["10", "11", "12", "13"];
var question_text = ["20", "21", "22", "23"];
var counter = 0;
var insync = document.getElementById("insync");
var not_insync = document.getElementById("not_insync");
var question = document.getElementById("question");
function change() {
<?php $output="";$output=exec('cat hello1.txt');?>
<?php $insync_output="";$insync_output=exec('cat $INSYNC_METRICS_LOG_FILE');?>
insync.innerHTML = "<?php echo $insync_output; ?>";
not_insync.innerHTML = "<font color=red>" +not_insync_text[counter]+ "</font>";
question.innerHTML = "<?php echo $output; ?>";
counter++;
if (counter >= not_insync_text.length) counter = 0;
}
change();
setInterval(function() {
change()
}, 4000);
这里hello1.txt和$ INSYNC_METRICS_LOG_FILE将使用增量数字(1,2,3)更新,我面临与$ _SESSION ['INSYNC_METRICS_VALUE']相同的问题,除非我刷新页面,否则它只会打印一次,但我不想刷新所以我从setInterval调用它。
答案 0 :(得分:0)
PHP在服务器上运行,这意味着当页面加载时,所有PHP代码都会执行一次。函数change()中的所有PHP都会一次性吐出值,而不是每次调用函数时都会吐出值。
如果您想在不刷新页面的情况下进行更新,则需要使用AJAX。