我创建了一个从数据库 names
中选择的 PHP 页面,并创建了包含 Javascript 代码的 html 页面,以每 5 秒自动从 php 页面刷新一个 div 标签,这里是代码
<script>
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',1);
}
}
xmlHttp.open("GET","select.php",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',2000);
}
</script>
<div id="ReloadThis"></div>
这太棒了,但只有在数据库中插入新内容时我才需要刷新。 那么有没有办法做到这一点?
最佳答案
我认为可以实现的一种方法是通过推送通知。这样您就可以保持与数据库的事件连接,这会告诉您何时进行了修改。
这也称为“长轮询”或“ cometd 编程”。 (查看此资源:comet programming)。我个人没有使用过这项技术,所以我不知道它的局限性(我听说过浏览器支持方面的问题)。
不过我想这样做的一种肮脏方式是:
当您在数据库中存储新值时,还会使用 json 值(或您希望的任何值)更新页面,比如说一个唯一的 ID 号
每隔 X 秒使用您的 ajax 并检查该页面上 ID 的值,如果有新的则更新您的值,如果不是就休眠。
这可以工作,但它会定期检查,而不是在发生更改时检查。
关于php - 将内容插入数据库时自动刷新 div 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786457/