我有一个PHP页面,其中有一些查询,我希望能够包括这个PHP页面在我的index.php和回显的结果与自动刷新(有点像堆栈溢出收件箱)
如何使用Javascript / Ajax来实现这一点?
发布于 2013-12-28 01:19:36
嗯..。我可以提供的解决方案之一是它的JavaScript函数setInterval();和jQuery库来更新div。例如: javascript文件:
$(document).ready(function(){
setInterval(function(){
$.get('your.php',function(response){
$('#your_element_id').html(response);
});
},2000);
});这只是一个解决方案。请记住,您可以以任何您想要的方式使用此方法。更新几个div的示例。
发布于 2013-12-28 01:20:38
只需在页面上放置一些容器,每隔30秒使用ajax检查服务器上是否有新邮件、更新、错误等,如果有数据,则将其设置为DOM
发布于 2013-12-28 01:23:21
下面是一个用纯javascript编写的示例,说明如何使用ajax从同一页面加载内容
index.php
<?php
if($_GET['time']){ echo date('Y-m-d H:i:s'); }else{
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>tit</title>
<script>
var result;
function ajax(a,b,c){//url,function,just a placeholder
c=new XMLHttpRequest;
c.open('GET',a);
c.onload=b;
c.send()
}
function handler(){
// loading gif
result.innerHTML='';
result.appendChild(document.createElement('img')).src='loading.gif';
ajax('index.php?time=yes',displayResult);
}
function displayResult(){
//this removes the loading gif
result.innerHTML=this.response;
}
window.onload=function(){
result=document.getElementById('result');
document.getElementById('button').addEventListener('click',handler,false);
}
</script>
</head><body>
<button id="button">Get Time</button>
<div id="result"></div>
</body></html>
<?php } ?>现在,要每隔30秒检查一次,请在window.onload函数中添加以下代码
var timer=setInterval(handler,30000)如果你有什么问题..直接问吧。
更好的方法是使用SSE (服务器发送的事件)或websockets。
https://stackoverflow.com/questions/20804771
复制相似问题