我不知道如何在没有请求的情况下获取数据,我一直在谷歌搜索,但似乎请求是强制性的。在这个例子中,我只想异步加载数据。如果管理员更新了数据库,则客户端无需刷新页面。
提前致谢。
results.php
<?php
$con=mysqli_connect("host","xxx","xxx","xxx");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Pages");
while($row = mysqli_fetch_array($result))
{
echo "<a href=" . $row['URL'] . ">" . $row['URL'] . "</a>";
echo "<br>";
}
mysqli_close($con);
?>
的index.html
<html>
<script>
function showLinks() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("links_area").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",results.php,true);
xmlhttp.send();
}
</script>
//<body onload="showLinks()"> FIRST TRY, IT DIDN'T WORK
//<button onclick="showLinks()">Click</button> SECOND TRY, IT DIDN'T WORK NEITHER
<div id="links_area"><img src="loading.gif"/></div>
</body>
</html>
答案 0 :(得分:0)
将数据推送到客户端而不是响应数据请求需要在推送可用期间保持与客户端的开放连接。有多种不同的方法可以实现这种类型的连接,但是两种比较流行的方法是长轮询和Web套接字。这里有一些阅读: