ajax setInterval效率

时间:2014-01-13 17:01:21

标签: javascript php jquery ajax database

我正在使用setInterval来运行ajax,以便尽可能接近实时(每秒)从数据库中检索数据。现在我从meeting_minutes_queries.php中提取了少量数据,因此没有滞后或故障。我想将此代码扩展到同一页面上的多个div容器,从而创建多个数据库连接。这似乎效率很低,甚至可能很危险。有没有更有效的方法来进行这个过程?

AJAX代码:

setInterval(function(){
  function update_tb(){
    $.ajax({
      type: "POST",
      url: "meeting_minutes_queries.php",
      async: false,
      success: function(result){
        $(".slide_content1").fadeIn('slow').html(result);
      }
    }).responseText;
  }
  $(function(){
    update_tb();
  });
}, 1000);

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:2)

是的,有。

您可以使用Long pollingWebSockets

使用慢速轮询,您运行一个请求,服务器将无限期地保持连接打开,直到它有话要说(例如在PHP睡眠很多,一旦得到结果,回答并完成)。

使用网络套接字,你有更多的可能性。

答案 1 :(得分:0)

试试这个:

$(function(){
  setInterval(function(){
    update_tb();
  }, 1000);

  function update_tb(){
    $.ajax({
      type: "POST",
      url: "meeting_minutes_queries.php",
      async: false,
      success: function(result){
        $(".slide_content1").fadeIn('slow').html(result);
      }
    }).responseText;
  }

});