刷新php页面而不重新加载内容?

时间:2014-11-30 13:24:55

标签: javascript php jquery html ajax

我到处搜索了一个方法,页面可以每x秒自动重新加载而不实际重新加载页面的内容,我有PHP代码(包括一些html),每当新用户加入页面时,它都会更新我的数据库表。但是这只能工作一次。

PHP代码

 <?php
                  $userOn5 = "SELECT * FROM `usersOn` WHERE name = '$username'";
$query4 = mysql_query($userOn5) or die (mysql_error()); 
 while ($row = mysql_fetch_array($query4)) { 
    // Gather all $row values into local variables for easier usage in output 
    $timenow = $row["time"];  
} 
                  $user = "SELECT * FROM `user`";
$query3 = mysql_query($user) or die (mysql_error()); 
 while ($row = mysql_fetch_array($query3)) { 
    $usernow = $row["name"];  
} 
$secs = time() - $timenow;

mysql_query("UPDATE user SET name = '$user'");
if ($username == $usernow) {
                  ?>
                    <div id="container" style="display:none;">

我尝试过使用元标记,但重新加载了整个内容,我试图将整个php代码移动到一个单独的php文件中,并尝试将其加载到页面中名为“show”的div中:

var auto_refresh = setInterval(
        function ()
        {
        $('#show').load('registeruser.php').fadeIn("slow");
        }, 10000); // autorefresh the content of the div after
                   //every 10000 milliseconds(10sec)

基本上我要做的是每10秒重新运行一次php代码。帮助

1 个答案:

答案 0 :(得分:3)

您的问题很可能是由于浏览器缓存造成的。您可以使用以下解决方法 - 这实际上是您使用cache: false时ajax的作用:

$(function() {
    var auto_refresh = setInterval(function () {
        var t = Date.now();
        $('#show').load('registeruser.php?t=' + t);
        $('#container').fadeIn("slow");
    }, 10000);
});

<强>更新

或者,您可以使用以下内容:

$(function() {
    var auto_refresh = setInterval(function () {
        var t = Date.now();
        $('#show').load('registeruser.php?t=' + t).find('> div').fadeIn("slow");
    }, 10000);
});