Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每5秒用AJAX刷新我的php页面_Php_Javascript_Ajax - Fatal编程技术网

每5秒用AJAX刷新我的php页面

每5秒用AJAX刷新我的php页面,php,javascript,ajax,Php,Javascript,Ajax,我正在创建一个链接共享网站,在我的index.php页面(我想每5秒刷新一次的页面)上,有一些帖子/链接必须自动出现(AJAX刷新),而用户不必自己刷新或一直按F5键 确切地说,这是如何工作的?您应该使用setIntervaljavascript函数来处理这个问题 setInterval(callServer, REFRESH_PERIOD_MILLIS); 见: [编辑],尤其是在没有js框架的情况下(取决于您是否要使用jquery、mototools、其他框架或没有框架…) 使用se

我正在创建一个链接共享网站,在我的index.php页面(我想每5秒刷新一次的页面)上,有一些帖子/链接必须自动出现(AJAX刷新),而用户不必自己刷新或一直按F5键


确切地说,这是如何工作的?

您应该使用
setInterval
javascript函数来处理这个问题

setInterval(callServer, REFRESH_PERIOD_MILLIS);
见:

  • [编辑],尤其是在没有js框架的情况下(取决于您是否要使用jquery、mototools、其他框架或没有框架…)
使用setInterval(myAjaxCallbackfunction,[时间以毫秒为单位])。
回调使用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的类似解决方案。我支持这个,尽管所有经过测试的浏览器仍然完全支持过时的解决方案;)