2013-02-06 3 views
0

2 초마다 업데이트되는 파일이 있습니다. 로그 파일을 읽고 PHP 파일에 게시하고 싶지만 단지 파일의 내용을 1 번 읽는 것뿐입니다. 매 2 초마다 업데이트됩니다. 이 경우 not_insync_text 값은 2 초마다 계속 업데이트됩니다. 여기 내 다음 코드PHP는 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

php와 javascript 믹싱을 중단하면 혼동을 피할 수 있습니다. 완전히 다른 환경에서 실행됩니다. – charlietfl

+0

''태그는 HTML 4에서 감가 상각되며 HTML 5에서는 지원되지 않습니다. FYI. –

답변

0

PHP는 서버에서 실행되므로 페이지가로드 될 때 모든 PHP 코드가 한 번 실행됩니다. 귀하의 함수 change()에있는 모든 PHP는 함수를 호출 할 때마다 값을 한 번 뱉어냅니다.

페이지를 새로 고치지 않고도 업데이트하려면 AJAX를 사용해야합니다.

+0

나를 상기시켜 줘서 고마워, 난 정말 기본을 잊어 버렸어. – user1642408

관련 문제