2012-08-08 133 views
-4

我尝试每隔5秒刷新一次div,但它不起作用,我有3个文件。DIV自动刷新

的index.php包含:

 <html> 
     <head> 

      <script type="text/javascript" src="javascript/jquery-1.3.2.js" ></script> 
      <script type="text/javascript" src="javascript/javascript.js" ></script> 
      <script type="text/javascript"> 
       $(document).ready(function(){ 
       setInterval ("newmsg()", 5000); 
       setInterval ("newpause()", 5000); 
       }); 
      </script> 
     </head> 
     <body> 
      <div id="msgs"> 
       <?php echo date("H:i:s"); ?> 
      </div> 
     </body> 
    </html> 

然后,我有javascript.js包含

 function GetXmlHttpObject() { 
     var xmlHttp = null; 
     try { 
      xmlHttp = new XMLHttpRequest(); 
      } 
     catch (e) { 
      try { 
       xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch (e) { 
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
     } 
     return xmlHttp; 
    } 

    function newmsg(){ 
     var request = GetXmlHttpObject(); 
     request.open("get", "msgsprint.php", true); 
     request.send(null); 
     request.onreadystatechange = function response() { 
      if (request.readyState === 4) { 
       if(request.responseText != "false"){ 
        $('#msgs').html(request.responseText); 
       } 
      } 
     } 

    } 

    function newpause(){ 
     var request = GetXmlHttpObject(); 
     request.open("get", "newpauseprint.php", true); 
     request.send(null); 
     request.onreadystatechange = function response() { 
      if (request.readyState === 4) { 
       if(request.responseText != "false"){ 
        $('#newpauselist').html(request.responseText); 
       } 
      } 
     } 

    } 

和我有msgsprint.php包含

<?php 
    echo 'ivan'; 
?> 
莫非

有谁请告诉我我做错了什么。

+1

什么不行?你有什么尝试?你有错误信息吗? – 2012-08-08 08:08:58

+1

仅仅在FYI中,当使用Ajax调用时,应该避免使用'setInterval'。鉴于您的Ajax请求需要超过五秒钟,您的呼叫将开始叠加。改为使用'setTimeout',并在Ajax调用完成时设置5秒的新超时。这样你可以确定他们不会堆叠。 – 2012-08-08 08:13:00

+0

thx,没有错误,只是它不刷新div。 – zonelsk 2012-08-08 08:16:04

回答

0

在你的代码中似乎没有任何错误,也许你没有从msgsprint.php得到有效的答案。

这是基于你的代码Demo那是工作的罚款

我劝你: - 你测试一个错误的请求状态。 - 您使用setTimeout来计划下一个电话newmsgs

这就是我在演示中所做的。