2011-10-12 95 views
2

我創建了一個鏈接共享網站,並在我的index.php頁面(我想每5秒刷新一次該頁面)上有帖子/鏈接必須自動出現(AJAX刷新),而無需用戶自行刷新或全程按F5。每5秒用AJAX刷新我的php頁面

這將如何工作,確切地說?

+0

看看這個線程 - 它使用jQuery的類似的解決方案。 http://stackoverflow.com/questions/1406580/jquery-ajax-polling-for-json-response-handling-based-on-ajax-result-or-json-cont –

回答

0

使用的setInterval(myAjaxCallbackfunction,[在毫秒時間])。 回調函數使用js的屬性,該函數是第一類成員(可以分配給變量),並且可以作爲參數傳遞給函數供以後使用。

1

是否需要使用AJAX? 除非我失去了一些東西;您可以使用元刷新標籤:

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

我會建議增加刷新之間的時間,因爲這將會把服務器上的負荷較重,可能會導致凍結或減慢網站。

+1

我第二次,雖然過時仍然是完全支持所有測試過的瀏覽器;) – dExIT

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>