第一次加载问题,setInterval


First load issue, setInterval

使用setInterval重新加载脚本-它不会在第一次时间过去之前重新加载(即:在实际显示内容之前等待120000毫秒)。有更好的方法吗?

 <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你声明重新加载作为一个全局变量和访问它不知道你的函数是否准备好了,这不是一个好主意。如果你的网站加载时间超过了2分钟,那将永远无法正常运行。

如果你想让你的重新加载队列每2分钟处理一次,并且第一次不等待地运行,你可以这样做:

$(function(){
  function reloading(){
    //whatever you want to process goes here
    (...)
    setTimeout(function(){
      reloading();
    }, 120000);
  }
  reloading();
});

这将加载你的代码一次,然后等待12秒再次运行,以此类推…