首次加载问题,setInterval

时间:2011-10-16 18:25:56

标签: php javascript ajax reload 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 个答案:

答案 0 :(得分:1)

1您声明重新加载为全局变量并在不知道您的函数是否准备好的情况下访问它,这不是一个好主意。如果您的网站有任何机会加载超过2分钟,那将无法正常工作。

如果你想要将你的重新加载排队,每2分钟处理一次并在第一时间运行而不等待,你可以这样做:

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

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

  }

  reloading();
});

这将加载您的代码一次,然后等待12秒再次运行它,依此类推......