-1

我想check在不重新加载页面的情况下每 4 秒更新一次 div。我怎么做?

<?php 

include 'admin/db.php'; /*including database config*/
$result = mysql_query("SELECT * FROM player ORDER BY id");
while($row = mysql_fetch_array($result))
  {?>
    <div align = "center">
      <table border = "1px">
        <tr>
          <th>Name</th>
          <th>Run</th>
          <th>Bowl</th>
          <th>Strike Rate</th>
          <th>4's</th>
          <th>6's</th>
        </tr>
        <tr>
          <div id = 'check'>
           <td><?=$row['name'];?></td>
           <td><?=$row['run'];?></td>
           <td><?=$row['bowl'];?></td>
           <td><?=$row['sr'];?></td>
           <td><?=$row['numberofFours'];?></td>
           <td><?=$row['numberofsixes'];?></td>
          </div>
        </tr>
      </table>
    </div>
<?php 
}
mysql_close($con);

?>
4

3 回答 3

1

你必须使用一些 javasrcipt 来实现类似的东西。您可以使用 Ajax 连接到服务器、获取数据和更新页面。

如果您需要异步执行此操作,则应通过(例如)Web 套接字实现长轮询。我已经重读了您的问题,长轮询绝对是您所追求的。

这应该是一个好的开始如何实现基本的“长轮询”?

于 2012-12-20T14:34:09.057 回答
1

就像这里提到的其他帖子一样,您需要使用 AJAX(异步 Javascript 和 XML)技术来实现这一点。下面是一个简单的例子,说明如何做到这一点。

var xhr = new XMLHttpRequest();
xhr.open('POST', url, false);
xhr.onreadystatechange = function() {
    if( xhr.readyState === 4 && xhr.status === 200 ) {
        console.log(xhr.responseText);
    }
};
xhr.send("some=data");

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest

在服务器上,当将初始数据发送到浏览器时,将其与时间戳一起发送,并通过每个 XHR 请求将所述时间戳发送回服务器。

同时在服务器上,如果生成了新内容(行),您将需要更新时间戳。当客户端向服务器发送请求时,检查两个时间戳以查看它们是否相等,如果不相等则将数据发送回客户端并更新 UI。

现在你有一些工作要做。我还将将您链接到一个“长轮询”示例(来自 SO),因为它应该可以帮助您编写需要编写的大部分代码。

如何实现基本的“长轮询”?

于 2012-12-20T14:45:50.067 回答
0

在互联网上查看 javascript ajax。

一个使用 jQuery 的简单示例(您不必使用):

$.post(someURL, somePostData, function(dataReturned){
    //do something with dataReturned
});
于 2012-12-20T14:33:57.420 回答