2011-10-16 3 views
1

setInterval을 사용하여 스크립트를 다시로드합니다. 첫 번째 시간이 경과하기 전에 다시로드되지 않습니다. 즉, 실제로 내용을 표시하기 전에 120000 msec 대기합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 당신이 전역 변수로 다시로드하고 함수가 준비가되었는지 알고없이 접근 선포첫 번째로드 문제, setInterval

<script id="source" language="javascript" type="text/javascript"> 
setInterval("reloading();", 120000 ); 
    $(function() { 
    reloading = function(){ 
     $.ajax({          
     url: 'api.php',     
     data: "",      
     dataType: 'json',    
     success: function(data)   
     { 
     var id = data[0];    
      _id = id; 
     var vname = data[1];   
     var message = data[2]; 
     var timestamp = data[3]; 
     var field1 = data[4]; 
     _field1 = field1; 
     var val2 = parseInt(field1, 10) + 1; 
     _val2 = val2; 
     $('#output').hide().html(timestamp +message).fadeIn("slow"); 
     $('#username').hide().html(vname).fadeIn("slow"); 
       } 
    }); 
}}); 
    </script> 

답변

1

1, 그건 좋은 생각이 아니다. 혹시라도 사이트가로드되는 데 2 ​​분 이상 걸리면 작동하지 않습니다.

한 번 매 2 분 처리하고 기다리지 않고 처음 실행하는 재로드를 대기하려면

, 당신이 이런 식으로 작업을 수행 할 수 있습니다

$(function(){ 
    function reloading(){ 
    //whatever you want to process goes here 
    (...) 

    setTimeout(function(){ 
     reloading(); 
    }, 120000); 

    } 

    reloading(); 
}); 

이 한 번에 다음 코드를로드합니다 다시 실행하려면 12 초를 기다리는 등의 작업을 수행하십시오.

+0

고맙습니다. 12000 msec는 2 분입니다.) – user977101

+0

lol np는 120k가 아니라 12k를 읽었습니다. – fmsf