Javascript Ajax自动刷新-表不刷新
我的代码中有一个严重的问题,我无法修复它。 我目前正在使用Ajax设置超时并从中获取数据。 这里的问题是它没有刷新(如果我通过url进入getdata.php页面,它会刷新,但我想刷新而不进入该页面) 这是我当前的ajax脚本:Javascript Ajax自动刷新-表不刷新,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我的代码中有一个严重的问题,我无法修复它。 我目前正在使用Ajax设置超时并从中获取数据。 这里的问题是它没有刷新(如果我通过url进入getdata.php页面,它会刷新,但我想刷新而不进入该页面) 这是我当前的ajax脚本: <div id="tableHolder"></div> <script> $(document).ready(function(){ refreshTable(); }); function r
<div id="tableHolder"></div>
<script>
$(document).ready(function(){
refreshTable();
});
function refreshTable(){
$('#tableHolder').load('getdata.php', function(){
setTimeout(refreshTable, 1000);
});
}
</script>
$(文档).ready(函数(){
刷新表();
});
函数刷新表(){
$('#tableHolder').load('getdata.php',function(){
设置超时(刷新表,1000);
});
}
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>";
}
?>
我找不到任何解决这个问题的办法,所以我最后的希望在你身上 问题是因为
$.load
方法正在为您提供缓存数据。您需要在url中添加一些随机文本,如时间戳
你可以这样用
<script>
$(document).ready(function(){
refreshTable();
});
function refreshTable(){
$('#tableHolder').load('getdata.php?time=' + new Date().getTime(), function(){
setTimeout(refreshTable, 1000);
});
}
</script>
$(文档).ready(函数(){
刷新表();
});
函数刷新表(){
$('#tableHolder').load('getdata.php?time='+new Date().getTime(),function()){
设置超时(刷新表,1000);
});
}
您可以将setInterval
与一些查询字符串一起使用,而不是setTimeout
function refreshTable(){
setInterval(function(){
$('#tableHolder').load('getdata.php?v=1')
}, 1000);
}
Settimeout通常用于一次性执行
如果要重复调用加载函数,请尝试使用setInterval,可能应该使用
setTimeout(refreshTable(),1000)
@Nagaraju-same也可以工作,如$所示。load
从服务器端(php)获取数据,因此我认为不会有任何缓存,除非没有缓存change@Nagaraju实际上OP是说他需要加载页面以获得更新的数据。所以,也许缓存问题是他所面临的。这个答案似乎对我有用,也许缓存总是在改变我的数据!他只想加载div,而不是页面,从php获取,这就是我的观点。@Nagaraju实际上,如果频繁点击,浏览器似乎会缓存相同api的响应。检查这个