我想在没有页面重新加载的情况下每4秒更新一次check
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);
?>
答案 0 :(得分:1)
你必须使用一些javasrcipt来实现类似的东西。您可以使用Ajax连接到服务器,获取数据并更新页面。
如果需要异步执行此操作,则应通过(例如)Web套接字实现长轮询。我已经重读了你的问题,长期的民意调查肯定是你所追求的。
这应该是一个好的开始How do I implement basic "Long Polling"?
答案 1 :(得分: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),因为它应该帮助你完成你需要编写的大部分代码。
答案 2 :(得分:0)
查看互联网上的javascript ajax。
使用jQuery的快速示例(不必须使用):
$.post(someURL, somePostData, function(dataReturned){
//do something with dataReturned
});