2011-10-16 138 views
1

使用setInterval重新加载脚本 - 在第一段时间过后(即在实际显示内容之前等待120000毫秒),它不会重新加载。有一个更好的方法吗?首次加载问题,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

谢谢,我会试试看。请注意,120000毫秒是2分钟;) – user977101

+0

哈哈np读12k不是120k:p固定它 – fmsf