我的代码中存在严重问题,但我无法解决问题。 我目前正在使用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!
答案 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