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

时间:2011-10-12 13:39:24

标签: php javascript ajax

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

这究竟如何运作?

5 个答案:

答案 0 :(得分:4)

您应该使用setInterval javascript函数来解决此问题。

setInterval(callServer, REFRESH_PERIOD_MILLIS);

请参阅:

答案 1 :(得分:1)

是否需要使用AJAX? 除非我遗漏了什么;你可以使用元刷新标签:

<meta http-equiv="refresh" content="5">

我建议增加刷新之间的时间,因为这会给服务器带来更重的负担,并可能导致冻结或减慢网站速度。

答案 2 :(得分:1)

你必须使用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>

答案 3 :(得分:0)

使用setInterval(myAjaxCallbackfunction,[以ms为单位的时间])。 回调使用js的属性,该函数是第一类成员(可以分配给变量),并且可以作为参数传递给函数以供以后使用。

答案 4 :(得分:0)

您可以使用javascript setInterval函数每隔5秒加载一次内容。

供您参考,请访问以下链接 -

Auto refresh div content every 3 sec