每5秒用AJAX刷新我的php页面
我正在创建一个链接共享网站,在我的index.php页面(我想每5秒刷新一次的页面)上,有一些帖子/链接必须自动出现(AJAX刷新),而用户不必自己刷新或一直按F5键每5秒用AJAX刷新我的php页面,php,javascript,ajax,Php,Javascript,Ajax,我正在创建一个链接共享网站,在我的index.php页面(我想每5秒刷新一次的页面)上,有一些帖子/链接必须自动出现(AJAX刷新),而用户不必自己刷新或一直按F5键 确切地说,这是如何工作的?您应该使用setIntervaljavascript函数来处理这个问题 setInterval(callServer, REFRESH_PERIOD_MILLIS); 见: [编辑],尤其是在没有js框架的情况下(取决于您是否要使用jquery、mototools、其他框架或没有框架…) 使用se
确切地说,这是如何工作的?您应该使用
setInterval
javascript函数来处理这个问题
setInterval(callServer, REFRESH_PERIOD_MILLIS);
见:
- [编辑],尤其是在没有js框架的情况下(取决于您是否要使用jquery、mototools、其他框架或没有框架…)
回调使用js的属性,即函数是第一类成员(可以分配给变量),并且可以作为参数传递给函数供以后使用。是否需要使用AJAX? 除非我错过了什么;您可以使用元刷新标记:
<meta http-equiv="refresh" content="5">
我建议增加刷新间隔时间,因为这会给服务器带来更大的负载,并可能导致站点冻结或减慢速度。您必须使用setInterval方法调用ajax函数,将新内容注入到div中:
<HTML>
<HEAD>
<TITLE>Hello World Page</TITLE>
<script language="JavaScript">
function xmlhttpPost(strURL) {
var xmlHttpReq = false;
// Mozilla/Safari
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
if (xmlHttpReq.overrideMimeType) {
xmlHttpReq.overrideMimeType('text/xml');
// See note below about this line
}
// IE
} else if (window.ActiveXObject) { // IE
try {
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!xmlHttpReq) {
alert('ERROR AJAX:( Cannot create an XMLHTTP instance');
return false;
}
xmlHttpReq.open('GET', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = function() {
callBackFunction(xmlHttpReq);
};
xmlHttpReq.send("");
}
function callBackFunction(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var responceString = http_request.responseText;
//TODO implement your function e.g.
document.getElementById("myDiv").InnerHTML+ = (responceString);
} else {
alert('ERROR: AJAX request status = ' + http_request.status);
}
}
}
setInterval("xmlhttpPost('test.php')", 5000);
</script>
</HEAD>
<BODY>
Hello World
<div id="myDiv"></div>
</BODY>
</HTML>
你好世界页面
函数xmlhttpPost(strURL){
var xmlHttpReq=false;
//Mozilla/Safari
if(window.XMLHttpRequest){
XMLHttpRequest=新的XMLHttpRequest();
if(xmlHttpReq.overrideMimeType){
xmlHttpReq.overrideMimeType('text/xml');
//关于这一行,请参见下面的注释
}
//即
}如果(window.ActiveXObject){//IE
试一试{
xmlHttpReq=新的ActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
xmlHttpReq=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){}
}
}
if(!xmlHttpReq){
警报('ERROR AJAX:(无法创建XMLHTTP实例');
返回false;
}
xmlHttpReq.open('GET',strURL,true);
xmlHttpReq.setRequestHeader('Content-Type',
‘application/x-www-form-urlencoded’;
xmlHttpReq.onreadystatechange=函数(){
callBackFunction(xmlHttpReq);
};
xmlHttpReq.send(“”);
}
函数调用函数(http\U请求){
如果(http_request.readyState==4){
如果(http_request.status==200){
var responceString=http_request.responseText;
//要实现你的功能,例如。
document.getElementById(“myDiv”).InnerHTML+=(responceString);
}否则{
警报('ERROR:AJAX请求状态='+http_request.status);
}
}
}
setInterval(“xmlhttpPost('test.php')”,5000);
你好,世界
您可以使用javascript setInterval函数每5秒加载一次内容
请访问下面的链接以供参考-
看看这个线程——一个使用jQuery的类似解决方案。我支持这个,尽管所有经过测试的浏览器仍然完全支持过时的解决方案;)