0

我有一个每 2 秒更新一次的文件,我想读取日志文件并将其发布到 php 文件中,但它只是读取文件内容 1 次,而不是每 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 调用它。

4

1 回答 1

0

PHP 在服务器上运行,这意味着所有 PHP 代码在页面加载时执行一次。函数 change() 中的所有 PHP 都会一次性输出值,而不是每次调用该函数时。

如果要在不刷新页面的情况下进行更新,则需要使用 AJAX。

于 2013-02-06T23:48:11.653 回答