Ajax自动刷新 - 表不刷新

时间:2017-05-04 10:41:37

标签: javascript php jquery html ajax

我的代码中存在严重问题,但我无法解决问题。 我目前正在使用Ajax来设置setTime并从中获取数据。 这里的问题是它没有刷新(如果我通过url页面getdata.php它刷新但我想刷新而不去那个页面。)

这是我目前的ajax脚本:

<div id="tableHolder"></div>

<script>

   $(document).ready(function(){
    refreshTable();
    });

     function refreshTable(){
       $('#tableHolder').load('getdata.php', function(){
       setTimeout(refreshTable, 1000);
      });
     }

</script>

getdata.php中的代码如下:

 <?php

require_once("config.php");
$req2 = mysqli_query($con, 'select user_id, user_name from users LIMIT 5');                                                                        
  while ($dnn = mysqli_fetch_array($req2)) {
    echo "<table>";
    echo "<tr>";
    echo "<td>" . $dnn['user_id'] . "|</td>";
    echo "<td>" . $dnn['user_name'] . "</td>";
    echo "</tr>";   
    echo "</table>";        
  } 
?> 

我无法找到解决此问题的方法,所以我最后的希望就是StackOverflow!

3 个答案:

答案 0 :(得分:2)

问题是因为$.load方法正在为您提供缓存数据。你需要在url中添加一些随机文本,如timestamp

你可以这样使用

<script>

   $(document).ready(function(){
    refreshTable();
    });

     function refreshTable(){
       $('#tableHolder').load('getdata.php?time=' + new Date().getTime(), function(){
       setTimeout(refreshTable, 1000);
      });
     }

</script>

答案 1 :(得分:0)

您可以将setTimeout与某些查询字符串

一起使用,而不是setInterval
function refreshTable(){
   setInterval(function(){  
    $('#tableHolder').load('getdata.php?v=1')
   }, 1000);
 }

答案 2 :(得分:0)

Settimeout通常用于一次性执行 如果要重复调用加载函数

,请尝试使用setInterval