【问题标题】:HTML Ajax jQuery first load instant [duplicate]HTML Ajax jQuery第一次加载即时[重复]
【发布时间】:2018-06-18 22:31:45
【问题描述】:

我想每 3 秒重新加载一次 table.php。我写了一个工作代码,但是当我调用页面手册或手动刷新它时,它会在 3 秒后开始加载我的内容,而不是立即加载。现在任何人,如何调用第一个 table.php,并在它之后每 3 秒刷新一次,就像我下面的代码一样?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      setInterval(function () {
        $('#show').load('table.php')
      }, 3000);
    });
  </script>

【问题讨论】:

  • 致电$('#show').load('table.php')
  • 是时候考虑使用 websockets 来减少该流量的服务器负载了

标签: javascript php jquery html ajax


【解决方案1】:

没有办法立即调用函数,只能调用它:

$(document).ready(function() {
  $('#show').load('table.php');

  setInterval(function () {
    $('#show').load('table.php')
  }, 3000);
});

更进一步,您可以封装对函数的相同调用:

$(document).ready(function() {
  function loadTable() {
      $('#show').load('table.php');
  }
  loadTable();

  setInterval(loadTable, 3000);
});

【讨论】:

    【解决方案2】:

    立即调用表加载,然后包含在您的循环中:

    $(document).ready(function() {
        $('#show').load('table.php')
        setInterval(function () {
            $('#show').load('table.php')
        }, 3000);
    });
    

    【讨论】:

      【解决方案3】:

      一个小优化,表格会在上次加载前3秒后准确填满,检查回调:

      var reload = function() {
          $('#show').load('table.php', function() {
              // Start the counter when the data is loaded... (to avoid problems when table.php takes more than 3 secs to return the data)
              setTimeout(reload, 3000);
          });
      };
      // Fill the table immediately
      reload();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多