【问题标题】:Refreshing my php page with AJAX every 5 seconds每 5 秒用 AJAX 刷新我的 php 页面
【发布时间】:2011-12-06 03:49:35
【问题描述】:

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

这究竟是如何工作的?

【问题讨论】:

标签: php javascript ajax


【解决方案1】:

您应该使用setInterval javascript 函数来处理此问题。

setInterval(callServer, REFRESH_PERIOD_MILLIS);

见:

【讨论】:

    【解决方案2】:

    您必须使用 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】:

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

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

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

      【讨论】:

      • 我支持这一点,尽管所有测试过的浏览器仍然完全支持过时 ;)
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        Auto refresh div content every 3 sec

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-20
          • 2014-10-16
          • 1970-01-01
          • 2018-02-18
          • 1970-01-01
          相关资源
          最近更新 更多